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 "oval_version.h"
00044 #include <stdbool.h>
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_BITWISE_AND,
00083 OVAL_OPERATION_BITWISE_OR,
00084 OVAL_OPERATION_CASE_INSENSITIVE_EQUALS,
00085 OVAL_OPERATION_CASE_INSENSITIVE_NOT_EQUAL,
00086 OVAL_OPERATION_EQUALS,
00087 OVAL_OPERATION_GREATER_THAN,
00088 OVAL_OPERATION_GREATER_THAN_OR_EQUAL,
00089 OVAL_OPERATION_LESS_THAN,
00090 OVAL_OPERATION_LESS_THAN_OR_EQUAL,
00091 OVAL_OPERATION_NOT_EQUAL,
00092 OVAL_OPERATION_PATTERN_MATCH,
00093 OVAL_OPERATION_SUBSET_OF,
00094 OVAL_OPERATION_SUPERSET_OF,
00095 } oval_operation_t;
00096
00097
00099 typedef enum {
00100 OVAL_EXISTENCE_UNKNOWN = 0,
00101 OVAL_ALL_EXIST = 1,
00102 OVAL_ANY_EXIST = 2,
00103 OVAL_AT_LEAST_ONE_EXISTS = 3,
00104 OVAL_ONLY_ONE_EXISTS = 4,
00105 OVAL_NONE_EXIST = 5
00106 } oval_existence_t;
00107
00109 typedef enum {
00110 OVAL_CHECK_UNKNOWN = 0,
00111 OVAL_CHECK_ALL = 1,
00112 OVAL_CHECK_AT_LEAST_ONE = 2,
00113 OVAL_CHECK_NONE_EXIST = 3,
00114 OVAL_CHECK_NONE_SATISFY = 4,
00115 OVAL_CHECK_ONLY_ONE = 5
00116 } oval_check_t;
00117
00119 typedef enum {
00120 OVAL_OBJECTCONTENT_UNKNOWN = 0,
00121 OVAL_OBJECTCONTENT_ENTITY = 1,
00122 OVAL_OBJECTCONTENT_SET = 2,
00123 OVAL_OBJECTCONTENT_FILTER = 3
00124 } oval_object_content_type_t;
00125
00127 typedef enum {
00128 OVAL_ENTITY_TYPE_UNKNOWN,
00129 OVAL_ENTITY_TYPE_ANY,
00130 OVAL_ENTITY_TYPE_BINARY,
00131 OVAL_ENTITY_TYPE_BOOLEAN,
00132 OVAL_ENTITY_TYPE_FLOAT,
00133 OVAL_ENTITY_TYPE_INTEGER,
00134 OVAL_ENTITY_TYPE_STRING,
00135 } oval_entity_type_t;
00136
00138 typedef enum {
00139 OVAL_FILTER_ACTION_UNKNOWN = 0,
00140 OVAL_FILTER_ACTION_EXCLUDE,
00141 OVAL_FILTER_ACTION_INCLUDE
00142 } oval_filter_action_t;
00143
00145 typedef enum {
00146 OVAL_DATATYPE_UNKNOWN = 0,
00147 OVAL_DATATYPE_BINARY,
00148 OVAL_DATATYPE_BOOLEAN,
00149 OVAL_DATATYPE_EVR_STRING,
00150 OVAL_DATATYPE_FILESET_REVISION,
00151 OVAL_DATATYPE_FLOAT,
00152 OVAL_DATATYPE_INTEGER,
00153 OVAL_DATATYPE_IOS_VERSION,
00154 OVAL_DATATYPE_IPV4ADDR,
00155 OVAL_DATATYPE_IPV6ADDR,
00156 OVAL_DATATYPE_RECORD,
00157 OVAL_DATATYPE_SEXP,
00158 OVAL_DATATYPE_STRING,
00159 OVAL_DATATYPE_STRING_M,
00160 OVAL_DATATYPE_VERSION,
00161 } oval_datatype_t;
00162
00164 typedef enum {
00165 OVAL_ENTITY_VARREF_UNKNOWN,
00166 OVAL_ENTITY_VARREF_NONE,
00167 OVAL_ENTITY_VARREF_ATTRIBUTE,
00168 OVAL_ENTITY_VARREF_ELEMENT
00169 } oval_entity_varref_type_t;
00170
00172 typedef enum {
00173 OVAL_SET_UNKNOWN,
00174 OVAL_SET_AGGREGATE,
00175 OVAL_SET_COLLECTIVE
00176 } oval_setobject_type_t;
00177
00179 typedef enum {
00180 OVAL_SET_OPERATION_UNKNOWN,
00181 OVAL_SET_OPERATION_COMPLEMENT = 1,
00182 OVAL_SET_OPERATION_INTERSECTION = 2,
00183 OVAL_SET_OPERATION_UNION = 3
00184 } oval_setobject_operation_t;
00185
00187 typedef enum {
00188 OVAL_VARIABLE_UNKNOWN,
00189 OVAL_VARIABLE_EXTERNAL,
00190 OVAL_VARIABLE_CONSTANT,
00191 OVAL_VARIABLE_LOCAL
00192 } oval_variable_type_t;
00193
00194 #define OVAL_FUNCTION 4
00196 typedef enum {
00197 OVAL_COMPONENT_UNKNOWN = 0,
00198 OVAL_COMPONENT_LITERAL = 1,
00199 OVAL_COMPONENT_OBJECTREF = 2,
00200 OVAL_COMPONENT_VARREF = 3,
00201 OVAL_COMPONENT_FUNCTION = 4,
00202 OVAL_FUNCTION_BEGIN = OVAL_FUNCTION + 1,
00203 OVAL_FUNCTION_CONCAT = OVAL_FUNCTION + 2,
00204 OVAL_FUNCTION_END = OVAL_FUNCTION + 3,
00205 OVAL_FUNCTION_SPLIT = OVAL_FUNCTION + 4,
00206 OVAL_FUNCTION_SUBSTRING = OVAL_FUNCTION + 5,
00207 OVAL_FUNCTION_TIMEDIF = OVAL_FUNCTION + 6,
00208 OVAL_FUNCTION_ESCAPE_REGEX = OVAL_FUNCTION + 7,
00209 OVAL_FUNCTION_REGEX_CAPTURE = OVAL_FUNCTION + 8,
00210 OVAL_FUNCTION_ARITHMETIC = OVAL_FUNCTION + 9,
00211 OVAL_FUNCTION_COUNT = OVAL_FUNCTION + 10,
00212 OVAL_FUNCTION_UNIQUE = OVAL_FUNCTION + 11,
00213 OVAL_FUNCTION_LAST = OVAL_FUNCTION + 12
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 typedef enum {
00236 OVAL_RECORD_FIELD_UNKNOWN = 0,
00237 OVAL_RECORD_FIELD_STATE = 1,
00238 OVAL_RECORD_FIELD_ITEM = 2,
00239 } oval_record_field_type_t;
00240
00244 oval_family_t oval_subtype_get_family(oval_subtype_t);
00245 const char *oval_operator_get_text(oval_operator_t);
00246 const char *oval_subtype_get_text(oval_subtype_t);
00247 const char *oval_family_get_text(oval_family_t);
00248 const char *oval_check_get_text(oval_check_t);
00249 const char *oval_existence_get_text(oval_existence_t);
00250 const char *oval_affected_family_get_text(oval_affected_family_t);
00251 const char *oval_datatype_get_text(oval_datatype_t);
00252 oval_datatype_t oval_datatype_from_text(const char *);
00253 const char *oval_operation_get_text(oval_operation_t);
00254 const char *oval_set_operation_get_text(oval_setobject_operation_t);
00255 const char *oval_datetime_format_get_text(oval_datetime_format_t);
00256 const char *oval_arithmetic_operation_get_text(oval_arithmetic_operation_t);
00257 const char *oval_filter_action_get_text(oval_filter_action_t);
00258
00259
00264 struct oval_definition_model;
00265
00272 struct oval_definition;
00277 struct oval_definition_iterator;
00283 struct oval_test;
00288 struct oval_test_iterator;
00297 struct oval_object;
00302 struct oval_object_iterator;
00309 struct oval_state;
00314 struct oval_state_iterator;
00329 struct oval_variable;
00334 struct oval_variable_iterator;
00355 struct oval_affected;
00360 struct oval_affected_iterator;
00368 struct oval_reference;
00373 struct oval_reference_iterator;
00382 struct oval_criteria_node;
00387 struct oval_criteria_node_iterator;
00392 struct oval_object_content;
00397 struct oval_object_content_iterator;
00402 struct oval_behavior;
00407 struct oval_behavior_iterator;
00412 struct oval_state_content;
00417 struct oval_state_content_iterator;
00422 struct oval_value;
00427 struct oval_value_iterator;
00432 struct oval_entity;
00436 struct oval_entity_iterator;
00440 struct oval_record_field;
00444 struct oval_record_field_iterator;
00449 struct oval_setobject;
00454 struct oval_setobject_iterator;
00459 struct oval_filter;
00463 struct oval_filter_iterator;
00564 struct oval_component;
00569 struct oval_component_iterator;
00579 struct oval_string_iterator;
00580
00584 struct oval_generator;
00585
00586 struct oval_generator *oval_generator_new(void);
00587 void oval_generator_free(struct oval_generator *generator);
00588 struct oval_generator *oval_generator_clone(struct oval_generator *old_generator);
00589 char *oval_generator_get_product_name(struct oval_generator *generator);
00590 char *oval_generator_get_product_version(struct oval_generator *generator);
00591 char *oval_generator_get_schema_version(struct oval_generator *generator);
00592 char *oval_generator_get_timestamp(struct oval_generator *generator);
00593 void oval_generator_set_product_name(struct oval_generator *generator, char *product_name);
00594 void oval_generator_set_product_version(struct oval_generator *generator, char *product_version);
00595 void oval_generator_set_schema_version(struct oval_generator *generator, char *schema_version);
00596 void oval_generator_set_timestamp(struct oval_generator *generator, char *timestamp);
00597
00602 struct oval_definition_model *oval_definition_model_new(void);
00609 struct oval_definition_model * oval_definition_model_import(const char *file);
00610
00619 int oval_definition_model_merge(struct oval_definition_model *model, const char *file);
00620
00626 struct oval_definition_model *oval_definition_model_clone(struct oval_definition_model *);
00632 int oval_definition_model_export(struct oval_definition_model *, const char *file);
00637 void oval_definition_model_free(struct oval_definition_model *model);
00638
00643 void oval_definition_model_set_generator(struct oval_definition_model *model, struct oval_generator *generator);
00649 int oval_definition_model_bind_variable_model(struct oval_definition_model *, struct oval_variable_model *);
00650
00651 void oval_definition_model_clear_external_variables(struct oval_definition_model *);
00658 struct oval_generator *oval_definition_model_get_generator(struct oval_definition_model *model);
00666 struct oval_definition *oval_definition_model_get_definition(struct oval_definition_model *, const char *id);
00675 struct oval_test *oval_definition_model_get_test(struct oval_definition_model *model, const char *id);
00684 struct oval_object *oval_definition_model_get_object(struct oval_definition_model *model, const char *id);
00693 struct oval_state *oval_definition_model_get_state(struct oval_definition_model *model, const char *id);
00702 struct oval_variable *oval_definition_model_get_variable(struct oval_definition_model *model, const char *id);
00707 struct oval_definition_iterator *oval_definition_model_get_definitions(struct oval_definition_model *model);
00714 struct oval_test_iterator *oval_definition_model_get_tests(struct oval_definition_model *model);
00721 struct oval_object_iterator *oval_definition_model_get_objects(struct oval_definition_model *model);
00728 struct oval_state_iterator *oval_definition_model_get_states(struct oval_definition_model *model);
00735 struct oval_variable_iterator *oval_definition_model_get_variables(struct oval_definition_model *model);
00736
00742 const char * oval_definition_model_supported(void);
00748 struct oval_variable_model_iterator *oval_definition_model_get_variable_models(struct oval_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 *);
00943 struct oval_criteria_node *oval_definition_get_criteria(struct oval_definition *);
00960 bool oval_definition_iterator_has_more(struct oval_definition_iterator *);
00966 struct oval_definition *oval_definition_iterator_next(struct oval_definition_iterator *);
00971 void oval_definition_iterator_free(struct oval_definition_iterator *);
00994 struct oval_test *oval_test_new(struct oval_definition_model *, const char *id);
01000 struct oval_test *oval_test_clone(struct oval_definition_model *new_model, struct oval_test *old_test);
01005 void oval_test_free(struct oval_test *);
01006
01020 void oval_test_set_subtype(struct oval_test *, oval_subtype_t subtype);
01026 void oval_test_add_note(struct oval_test *, char *note);
01032 void oval_test_set_comment(struct oval_test *, char *comment);
01037 void oval_test_set_deprecated(struct oval_test *, bool deprecated);
01046 void oval_test_set_version(struct oval_test *, int version);
01051 void oval_test_set_state_operator(struct oval_test *, oval_operator_t);
01060 void oval_test_set_existence(struct oval_test *, oval_existence_t);
01070 void oval_test_set_check(struct oval_test *, oval_check_t);
01079 void oval_test_set_object(struct oval_test *, struct oval_object *);
01085 void oval_test_add_state(struct oval_test *, struct oval_state *);
01096 oval_family_t oval_test_get_family(struct oval_test *);
01101 oval_subtype_t oval_test_get_subtype(struct oval_test *);
01108 struct oval_string_iterator *oval_test_get_notes(struct oval_test *);
01114 char *oval_test_get_comment(struct oval_test *);
01120 char *oval_test_get_id(struct oval_test *);
01125 bool oval_test_get_deprecated(struct oval_test *);
01130 int oval_test_get_version(struct oval_test *);
01135 oval_operator_t oval_test_get_state_operator(struct oval_test *);
01140 oval_existence_t oval_test_get_existence(struct oval_test *);
01145 oval_check_t oval_test_get_check(struct oval_test *);
01151 struct oval_object *oval_test_get_object(struct oval_test *);
01158 struct oval_state_iterator *oval_test_get_states(struct oval_test *);
01159
01176 bool oval_test_iterator_has_more(struct oval_test_iterator *);
01181 struct oval_test *oval_test_iterator_next(struct oval_test_iterator *);
01186 void oval_test_iterator_free(struct oval_test_iterator *);
01207 struct oval_object *oval_object_new(struct oval_definition_model *, const char *id);
01213 struct oval_object *oval_object_clone(struct oval_definition_model *new_model, struct oval_object *old_object);
01218 void oval_object_free(struct oval_object *);
01219
01233 void oval_object_set_subtype(struct oval_object *, oval_subtype_t subtype);
01239 void oval_object_add_note(struct oval_object *, char *note);
01240
01246 void oval_object_set_comment(struct oval_object *, char *comment);
01247
01252 void oval_object_set_deprecated(struct oval_object *, bool deprecated);
01261 void oval_object_set_version(struct oval_object *, int version);
01274 void oval_object_add_object_content(struct oval_object *, struct oval_object_content *content);
01287 void oval_object_add_behavior(struct oval_object *, struct oval_behavior *behavior);
01298 oval_family_t oval_object_get_family(struct oval_object *);
01304 const char *oval_object_get_name(struct oval_object *);
01309 oval_subtype_t oval_object_get_subtype(struct oval_object *);
01316 struct oval_string_iterator *oval_object_get_notes(struct oval_object *);
01322 char *oval_object_get_comment(struct oval_object *);
01328 char *oval_object_get_id(struct oval_object *);
01329
01334 bool oval_object_get_deprecated(struct oval_object *);
01339 int oval_object_get_version(struct oval_object *);
01340
01344 oval_version_t oval_object_get_schema_version(struct oval_object *object);
01345
01352 struct oval_object_content_iterator *oval_object_get_object_contents(struct oval_object *);
01359 struct oval_behavior_iterator *oval_object_get_behaviors(struct oval_object *);
01376 bool oval_object_iterator_has_more(struct oval_object_iterator *);
01381 struct oval_object *oval_object_iterator_next(struct oval_object_iterator *);
01386 void oval_object_iterator_free(struct oval_object_iterator *);
01407 struct oval_state *oval_state_new(struct oval_definition_model *, const char *id);
01413 struct oval_state *oval_state_clone(struct oval_definition_model *new_model, struct oval_state *old_state);
01418 void oval_state_free(struct oval_state *);
01419
01433 void oval_state_set_subtype(struct oval_state *, oval_subtype_t subtype);
01439 void oval_state_add_note(struct oval_state *, char *note);
01445 void oval_state_set_comment(struct oval_state *, char *comment);
01450 void oval_state_set_deprecated(struct oval_state *, bool deprecated);
01459 void oval_state_set_version(struct oval_state *, int version);
01464 void oval_state_set_operator(struct oval_state *, oval_operator_t);
01477 void oval_state_add_content(struct oval_state *, struct oval_state_content *content);
01488 oval_family_t oval_state_get_family(struct oval_state *);
01494 const char *oval_state_get_name(struct oval_state *);
01499 oval_subtype_t oval_state_get_subtype(struct oval_state *);
01506 struct oval_string_iterator *oval_state_get_notes(struct oval_state *);
01512 char *oval_state_get_comment(struct oval_state *);
01518 char *oval_state_get_id(struct oval_state *);
01523 bool oval_state_get_deprecated(struct oval_state *);
01528 int oval_state_get_version(struct oval_state *);
01533 int oval_state_get_operator(struct oval_state *);
01540 struct oval_state_content_iterator *oval_state_get_contents(struct oval_state *);
01551 bool oval_state_iterator_has_more(struct oval_state_iterator *);
01556 struct oval_state *oval_state_iterator_next(struct oval_state_iterator *);
01561 void oval_state_iterator_free(struct oval_state_iterator *);
01594 struct oval_variable *oval_variable_new(struct oval_definition_model *model, const char *id, oval_variable_type_t type);
01600 struct oval_variable *oval_variable_clone(struct oval_definition_model *new_model, struct oval_variable *old_variable);
01605 void oval_variable_free(struct oval_variable *);
01606
01618 void oval_variable_set_comment(struct oval_variable *, char *comment);
01626 void oval_variable_set_version(struct oval_variable *, int version);
01632 void oval_variable_set_deprecated(struct oval_variable *, bool deprecated);
01640 void oval_variable_set_datatype(struct oval_variable *, oval_datatype_t);
01654 void oval_variable_add_value(struct oval_variable *, struct oval_value *);
01655
01656 void oval_variable_clear_values(struct oval_variable *);
01669 void oval_variable_set_component(struct oval_variable *, struct oval_component *component);
01681 char *oval_variable_get_id(struct oval_variable *);
01687 char *oval_variable_get_comment(struct oval_variable *);
01692 int oval_variable_get_version(struct oval_variable *);
01697 bool oval_variable_get_deprecated(struct oval_variable *);
01702 oval_variable_type_t oval_variable_get_type(struct oval_variable *);
01707 oval_datatype_t oval_variable_get_datatype(struct oval_variable *);
01715 struct oval_value_iterator *oval_variable_get_values(struct oval_variable *);
01722 struct oval_component *oval_variable_get_component(struct oval_variable *);
01727 const char *oval_component_type_get_text(oval_component_type_t type);
01738 bool oval_variable_iterator_has_more(struct oval_variable_iterator *);
01743 struct oval_variable *oval_variable_iterator_next(struct oval_variable_iterator *);
01748 void oval_variable_iterator_free(struct oval_variable_iterator *);
01761 struct oval_affected *oval_affected_new(struct oval_definition_model *);
01767 struct oval_affected *oval_affected_clone(struct oval_definition_model *new_model, struct oval_affected *old_affected);
01772 void oval_affected_free(struct oval_affected *);
01773
01782 void oval_affected_set_family(struct oval_affected *, oval_affected_family_t family);
01787 void oval_affected_add_platform(struct oval_affected *, char *platform_name);
01792 void oval_affected_add_product(struct oval_affected *, char *product_name);
01805 oval_affected_family_t oval_affected_get_family(struct oval_affected *);
01813 struct oval_string_iterator *oval_affected_get_platforms(struct oval_affected *);
01821 struct oval_string_iterator *oval_affected_get_products(struct oval_affected *);
01838 bool oval_affected_iterator_has_more(struct oval_affected_iterator *);
01843 struct oval_affected *oval_affected_iterator_next(struct oval_affected_iterator *);
01848 void oval_affected_iterator_free(struct oval_affected_iterator *);
01854 struct oval_reference *oval_reference_new(struct oval_definition_model *);
01859 struct oval_reference *oval_reference_clone
01860 (struct oval_definition_model *new_model, struct oval_reference *old_reference);
01864 void oval_reference_free(struct oval_reference *);
01865
01875 void oval_reference_set_source(struct oval_reference *, char *);
01879 void oval_reference_set_id(struct oval_reference *, char *);
01883 void oval_reference_set_url(struct oval_reference *, char *);
01895 char *oval_reference_get_source(struct oval_reference *);
01901 char *oval_reference_get_id(struct oval_reference *);
01907 char *oval_reference_get_url(struct oval_reference *);
01917 bool oval_reference_iterator_has_more(struct oval_reference_iterator *);
01921 struct oval_reference *oval_reference_iterator_next(struct oval_reference_iterator *);
01925 void oval_reference_iterator_free(struct oval_reference_iterator *);
01954 struct oval_criteria_node *oval_criteria_node_new(struct oval_definition_model *, oval_criteria_node_type_t type);
01960 struct oval_criteria_node *oval_criteria_node_clone
01961 (struct oval_definition_model *new_model, struct oval_criteria_node *old_node);
01966 void oval_criteria_node_free(struct oval_criteria_node *);
01967
01977 void oval_criteria_node_set_negate(struct oval_criteria_node *, bool negate);
01983 void oval_criteria_node_set_applicability_check(struct oval_criteria_node *, bool applicability_check);
01989 void oval_criteria_set_node_type(struct oval_criteria_node *node, oval_criteria_node_type_t type);
01995 void oval_criteria_node_set_comment(struct oval_criteria_node *, char *comment);
02003 void oval_criteria_node_set_operator(struct oval_criteria_node *, oval_operator_t op);
02014 void oval_criteria_node_add_subnode(struct oval_criteria_node *, struct oval_criteria_node *node);
02022 void oval_criteria_node_set_test(struct oval_criteria_node *, struct oval_test *);
02030 void oval_criteria_node_set_definition(struct oval_criteria_node *, struct oval_definition *);
02041 oval_criteria_node_type_t oval_criteria_node_get_type(struct oval_criteria_node *);
02046 bool oval_criteria_node_get_negate(struct oval_criteria_node *);
02051 bool oval_criteria_node_get_applicability_check(struct oval_criteria_node *);
02052
02058 char *oval_criteria_node_get_comment(struct oval_criteria_node *);
02064 oval_operator_t oval_criteria_node_get_operator(struct oval_criteria_node *);
02072 struct oval_criteria_node_iterator *oval_criteria_node_get_subnodes(struct oval_criteria_node *);
02079 struct oval_test *oval_criteria_node_get_test(struct oval_criteria_node *);
02086 struct oval_definition *oval_criteria_node_get_definition(struct oval_criteria_node *);
02097 bool oval_criteria_node_iterator_has_more(struct oval_criteria_node_iterator *);
02103 struct oval_criteria_node *oval_criteria_node_iterator_next(struct oval_criteria_node_iterator *);
02108 void oval_criteria_node_iterator_free(struct oval_criteria_node_iterator *);
02120 struct oval_object_content *oval_object_content_new(struct oval_definition_model *model, oval_object_content_type_t type);
02121
02126 struct oval_object_content *oval_object_content_clone
02127 (struct oval_definition_model *new_model, struct oval_object_content *old_content);
02128
02132 void oval_object_content_free(struct oval_object_content *);
02133
02142 void oval_object_content_set_type(struct oval_object_content *, oval_object_content_type_t);
02146 void oval_object_content_set_field_name(struct oval_object_content *, char *);
02150 void oval_object_content_set_entity(struct oval_object_content *, struct oval_entity *);
02154 void oval_object_content_set_varCheck(struct oval_object_content *, oval_check_t);
02158 void oval_object_content_set_setobject(struct oval_object_content *, struct oval_setobject *);
02170 char *oval_object_content_get_field_name(struct oval_object_content *);
02175 oval_object_content_type_t oval_object_content_get_type(struct oval_object_content *);
02181 struct oval_entity *oval_object_content_get_entity(struct oval_object_content *);
02186 oval_check_t oval_object_content_get_varCheck(struct oval_object_content *);
02192 struct oval_setobject *oval_object_content_get_setobject(struct oval_object_content *);
02202 bool oval_object_content_iterator_has_more(struct oval_object_content_iterator *);
02206 struct oval_object_content *oval_object_content_iterator_next(struct oval_object_content_iterator *);
02210 void oval_object_content_iterator_free(struct oval_object_content_iterator *);
02222 struct oval_behavior *oval_behavior_new(struct oval_definition_model *);
02223
02228 struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior);
02232 void oval_behavior_free(struct oval_behavior *);
02233
02241 void oval_behavior_set_keyval(struct oval_behavior *behavior, const char *key, const char *value);
02253 char *oval_behavior_get_key(struct oval_behavior *);
02259 char *oval_behavior_get_value(struct oval_behavior *);
02269 bool oval_behavior_iterator_has_more(struct oval_behavior_iterator *);
02273 struct oval_behavior *oval_behavior_iterator_next(struct oval_behavior_iterator *);
02277 void oval_behavior_iterator_free(struct oval_behavior_iterator *);
02289 struct oval_state_content *oval_state_content_new(struct oval_definition_model *);
02294 struct oval_state_content *oval_state_content_clone (struct oval_definition_model *new_model, struct oval_state_content *old_content);
02298 void oval_state_content_free(struct oval_state_content *);
02299
02307 void oval_state_content_set_entity(struct oval_state_content *, struct oval_entity *);
02311 void oval_state_content_add_record_field(struct oval_state_content *, struct oval_record_field *);
02315 void oval_state_content_set_varcheck(struct oval_state_content *, oval_check_t);
02319 void oval_state_content_set_entcheck(struct oval_state_content *, oval_check_t);
02331 struct oval_entity *oval_state_content_get_entity(struct oval_state_content *);
02335 struct oval_record_field_iterator *oval_state_content_get_record_fields(struct oval_state_content *);
02340 oval_check_t oval_state_content_get_var_check(struct oval_state_content *);
02345 oval_check_t oval_state_content_get_ent_check(struct oval_state_content *);
02356 bool oval_state_content_iterator_has_more(struct oval_state_content_iterator *);
02360 struct oval_state_content *oval_state_content_iterator_next(struct oval_state_content_iterator *);
02364 void oval_state_content_iterator_free(struct oval_state_content_iterator *);
02370 struct oval_value *oval_value_new(oval_datatype_t datatype, char *text_value);
02375 struct oval_value *oval_value_clone(struct oval_value *old_value);
02379 void oval_value_free(struct oval_value *);
02380
02388 void oval_value_set_datatype(struct oval_value *, oval_datatype_t);
02389
02398 oval_datatype_t oval_value_get_datatype(struct oval_value *);
02404 char *oval_value_get_text(struct oval_value *);
02409 unsigned char *oval_value_get_binary(struct oval_value *);
02414 bool oval_value_get_boolean(struct oval_value *);
02419 float oval_value_get_float(struct oval_value *);
02424 long long oval_value_get_integer(struct oval_value *);
02434 bool oval_value_iterator_has_more(struct oval_value_iterator *);
02438 struct oval_value *oval_value_iterator_next(struct oval_value_iterator *);
02442 int oval_value_iterator_remaining(struct oval_value_iterator *iterator);
02446 void oval_value_iterator_free(struct oval_value_iterator *);
02458 struct oval_entity *oval_entity_new(struct oval_definition_model *);
02463 struct oval_entity *oval_entity_clone(struct oval_definition_model *model, struct oval_entity *old_entity);
02467 void oval_entity_free(struct oval_entity *);
02468
02476 void oval_entity_set_type(struct oval_entity *, oval_entity_type_t);
02480 void oval_entity_set_datatype(struct oval_entity *, oval_datatype_t);
02484 void oval_entity_set_mask(struct oval_entity *, int);
02488 void oval_entity_set_varref_type(struct oval_entity *, oval_entity_varref_type_t);
02492 void oval_entity_set_variable(struct oval_entity *, struct oval_variable *);
02496 void oval_entity_set_value(struct oval_entity *, struct oval_value *);
02500 void oval_entity_set_name(struct oval_entity *, char *);
02504 void oval_entity_set_operation(struct oval_entity *, oval_operation_t);
02516 char *oval_entity_get_name(struct oval_entity *);
02521 oval_entity_type_t oval_entity_get_type(struct oval_entity *);
02526 oval_datatype_t oval_entity_get_datatype(struct oval_entity *);
02531 oval_operation_t oval_entity_get_operation(struct oval_entity *);
02537 struct oval_variable *oval_entity_get_variable(struct oval_entity *);
02543 struct oval_value *oval_entity_get_value(struct oval_entity *);
02548 int oval_entity_get_mask(struct oval_entity *);
02553 oval_entity_varref_type_t oval_entity_get_varref_type(struct oval_entity *);
02563 bool oval_entity_iterator_has_more(struct oval_entity_iterator *);
02567 struct oval_entity *oval_entity_iterator_next(struct oval_entity_iterator *);
02571 void oval_entity_iterator_free(struct oval_entity_iterator *);
02583 struct oval_record_field *oval_record_field_new(oval_record_field_type_t);
02587 struct oval_record_field *oval_record_field_clone(struct oval_record_field *);
02591 void oval_record_field_free(struct oval_record_field *);
02592
02600 void oval_record_field_set_name(struct oval_record_field *, char *);
02604 void oval_record_field_set_value(struct oval_record_field *, char *);
02608 void oval_record_field_set_datatype(struct oval_record_field *, oval_datatype_t);
02612 void oval_record_field_set_mask(struct oval_record_field *, int);
02616 void oval_record_field_set_operation(struct oval_record_field *, oval_operation_t);
02620 void oval_record_field_set_variable(struct oval_record_field *, struct oval_variable *);
02624 void oval_record_field_set_var_check(struct oval_record_field *, oval_check_t);
02628 void oval_record_field_set_ent_check(struct oval_record_field *, oval_check_t);
02638 oval_record_field_type_t oval_record_field_get_type(struct oval_record_field *);
02642 char *oval_record_field_get_name(struct oval_record_field *);
02646 char *oval_record_field_get_value(struct oval_record_field *);
02650 oval_datatype_t oval_record_field_get_datatype(struct oval_record_field *);
02654 int oval_record_field_get_mask(struct oval_record_field *);
02658 oval_operation_t oval_record_field_get_operation(struct oval_record_field *);
02662 struct oval_variable *oval_record_field_get_variable(struct oval_record_field *);
02666 oval_check_t oval_record_field_get_var_check(struct oval_record_field *);
02670 oval_check_t oval_record_field_get_ent_check(struct oval_record_field *);
02680 bool oval_record_field_iterator_has_more(struct oval_record_field_iterator *);
02684 struct oval_record_field *oval_record_field_iterator_next(struct oval_record_field_iterator *);
02688 void oval_record_field_iterator_free(struct oval_record_field_iterator *);
02700 struct oval_filter *oval_filter_new(struct oval_definition_model *);
02704 void oval_filter_free(struct oval_filter *);
02708 struct oval_filter *oval_filter_clone(struct oval_definition_model *, struct oval_filter *);
02709
02717 void oval_filter_set_state(struct oval_filter *, struct oval_state *);
02721 void oval_filter_set_filter_action(struct oval_filter *, oval_filter_action_t );
02731 struct oval_state *oval_filter_get_state(struct oval_filter *);
02735 oval_filter_action_t oval_filter_get_filter_action(struct oval_filter *);
02745 bool oval_filter_iterator_has_more(struct oval_filter_iterator *);
02749 struct oval_filter *oval_filter_iterator_next(struct oval_filter_iterator *);
02753 void oval_filter_iterator_free(struct oval_filter_iterator *);
02765 struct oval_setobject *oval_setobject_new(struct oval_definition_model *);
02770 struct oval_setobject *oval_setobject_clone(struct oval_definition_model *new_model, struct oval_setobject *old_setobject);
02774 void oval_setobject_free(struct oval_setobject *);
02775
02782 void oval_setobject_set_type(struct oval_setobject *, oval_setobject_type_t);
02786 void oval_setobject_set_operation(struct oval_setobject *, oval_setobject_operation_t);
02790 void oval_setobject_add_subset(struct oval_setobject *, struct oval_setobject *);
02794 void oval_setobject_add_object(struct oval_setobject *, struct oval_object *);
02798 void oval_setobject_add_filter(struct oval_setobject *, struct oval_filter *);
02809 oval_setobject_type_t oval_setobject_get_type(struct oval_setobject *);
02814 oval_setobject_operation_t oval_setobject_get_operation(struct oval_setobject *);
02822 struct oval_setobject_iterator *oval_setobject_get_subsets(struct oval_setobject *);
02830 struct oval_object_iterator *oval_setobject_get_objects(struct oval_setobject *);
02838 struct oval_filter_iterator *oval_setobject_get_filters(struct oval_setobject *);
02848 bool oval_setobject_iterator_has_more(struct oval_setobject_iterator *);
02852 struct oval_setobject *oval_setobject_iterator_next(struct oval_setobject_iterator *);
02856 void oval_setobject_iterator_free(struct oval_setobject_iterator *);
02908 struct oval_component *oval_component_new(struct oval_definition_model *, oval_component_type_t type);
02914 struct oval_component *oval_component_clone(struct oval_definition_model *new_model,
02915 struct oval_component *old_component);
02920 void oval_component_free(struct oval_component *);
02921
02930 void oval_component_set_type(struct oval_component *component, oval_component_type_t type);
02936 void oval_component_set_object(struct oval_component *, struct oval_object *object);
02941 void oval_component_set_item_field(struct oval_component *, char *);
02946 void oval_component_set_record_field(struct oval_component *, char *);
02952 void oval_component_set_variable(struct oval_component *, struct oval_variable *variable);
02956 void oval_component_add_function_component(struct oval_component *, struct oval_component *);
02960 void oval_component_set_arithmetic_operation(struct oval_component *, oval_arithmetic_operation_t);
02964 void oval_component_set_prefix(struct oval_component *, char *);
02968 void oval_component_set_suffix(struct oval_component *, char *);
02972 void oval_component_set_split_delimiter(struct oval_component *, char *);
02976 void oval_component_set_substring_start(struct oval_component *, int);
02980 void oval_component_set_substring_length(struct oval_component *, int);
02984 void oval_component_set_timedif_format_1(struct oval_component *, oval_datetime_format_t);
02988 void oval_component_set_timedif_format_2(struct oval_component *, oval_datetime_format_t);
02992 void oval_component_set_regex_pattern(struct oval_component *, char *);
02996 void oval_component_set_literal_value(struct oval_component *, struct oval_value *);
03007 oval_component_type_t oval_component_get_type(struct oval_component *);
03015 struct oval_object *oval_component_get_object(struct oval_component *);
03022 char *oval_component_get_item_field(struct oval_component *);
03029 char *oval_component_get_record_field(struct oval_component *);
03037 struct oval_variable *oval_component_get_variable(struct oval_component *);
03045 struct oval_component_iterator *oval_component_get_function_components(struct oval_component *);
03051 oval_arithmetic_operation_t oval_component_get_arithmetic_operation(struct oval_component *);
03059 char *oval_component_get_prefix(struct oval_component *);
03067 char *oval_component_get_suffix(struct oval_component *);
03075 char *oval_component_get_split_delimiter(struct oval_component *);
03081 int oval_component_get_substring_start(struct oval_component *);
03087 int oval_component_get_substring_length(struct oval_component *);
03093 oval_datetime_format_t oval_component_get_timedif_format_1(struct oval_component *);
03099 oval_datetime_format_t oval_component_get_timedif_format_2(struct oval_component *);
03107 char *oval_component_get_regex_pattern(struct oval_component *);
03115 struct oval_value *oval_component_get_literal_value(struct oval_component *);
03126 bool oval_component_iterator_has_more(struct oval_component_iterator *);
03132 struct oval_component *oval_component_iterator_next(struct oval_component_iterator *);
03137 void oval_component_iterator_free(struct oval_component_iterator *);
03142 int oval_component_iterator_remaining(struct oval_component_iterator *);
03159 bool oval_string_iterator_has_more(struct oval_string_iterator *);
03164 char *oval_string_iterator_next(struct oval_string_iterator *);
03169 int oval_string_iterator_remaining(struct oval_string_iterator *);
03174 void oval_string_iterator_free(struct oval_string_iterator *);
03186 char *oval_determine_document_schema_version(const char *, oscap_document_type_t);
03187
03191 #endif