Open SCAP Library
|
00001 00016 /* 00017 * Copyright 2009-2010 Red Hat Inc., Durham, North Carolina. 00018 * All Rights Reserved. 00019 * 00020 * This library is free software; you can redistribute it and/or 00021 * modify it under the terms of the GNU Lesser General Public 00022 * License as published by the Free Software Foundation; either 00023 * version 2.1 of the License, or (at your option) any later version. 00024 * 00025 * This library is distributed in the hope that it will be useful, 00026 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00027 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00028 * Lesser General Public License for more details. 00029 * 00030 * You should have received a copy of the GNU Lesser General Public 00031 * License along with this library; if not, write to the Free Software 00032 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00033 * 00034 * Authors: 00035 * "David Niemoller" <David.Niemoller@g2-inc.com> 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_RECORD = 10, 00165 OVAL_DATATYPE_SEXP = 11, 00166 OVAL_DATATYPE_STRING_M = 12 00167 } oval_datatype_t; 00168 00170 typedef enum { 00171 OVAL_ENTITY_VARREF_UNKNOWN, 00172 OVAL_ENTITY_VARREF_NONE, 00173 OVAL_ENTITY_VARREF_ATTRIBUTE, 00174 OVAL_ENTITY_VARREF_ELEMENT 00175 } oval_entity_varref_type_t; 00176 00178 typedef enum { 00179 OVAL_SET_UNKNOWN, 00180 OVAL_SET_AGGREGATE, 00181 OVAL_SET_COLLECTIVE 00182 } oval_setobject_type_t; 00183 00185 typedef enum { 00186 OVAL_SET_OPERATION_UNKNOWN, 00187 OVAL_SET_OPERATION_COMPLEMENT = 1, 00188 OVAL_SET_OPERATION_INTERSECTION = 2, 00189 OVAL_SET_OPERATION_UNION = 3 00190 } oval_setobject_operation_t; 00191 00193 typedef enum { 00194 OVAL_VARIABLE_UNKNOWN, 00195 OVAL_VARIABLE_EXTERNAL, 00196 OVAL_VARIABLE_CONSTANT, 00197 OVAL_VARIABLE_LOCAL 00198 } oval_variable_type_t; 00199 00200 #define OVAL_FUNCTION 4 00201 00202 typedef enum { 00203 OVAL_COMPONENT_UNKNOWN = 0, 00204 OVAL_COMPONENT_LITERAL = 1, 00205 OVAL_COMPONENT_OBJECTREF = 2, 00206 OVAL_COMPONENT_VARREF = 3, 00207 OVAL_COMPONENT_FUNCTION = 4, 00208 OVAL_FUNCTION_BEGIN = OVAL_FUNCTION + 1, 00209 OVAL_FUNCTION_CONCAT = OVAL_FUNCTION + 2, 00210 OVAL_FUNCTION_END = OVAL_FUNCTION + 3, 00211 OVAL_FUNCTION_SPLIT = OVAL_FUNCTION + 4, 00212 OVAL_FUNCTION_SUBSTRING = OVAL_FUNCTION + 5, 00213 OVAL_FUNCTION_TIMEDIF = OVAL_FUNCTION + 6, 00214 OVAL_FUNCTION_ESCAPE_REGEX = OVAL_FUNCTION + 7, 00215 OVAL_FUNCTION_REGEX_CAPTURE = OVAL_FUNCTION + 8, 00216 OVAL_FUNCTION_ARITHMETIC = OVAL_FUNCTION + 9 00217 } oval_component_type_t; 00218 00220 typedef enum { 00221 OVAL_ARITHMETIC_UNKNOWN = 0, 00222 OVAL_ARITHMETIC_ADD = 1, 00223 OVAL_ARITHMETIC_MULTIPLY = 2, 00224 OVAL_ARITHMETIC_SUBTRACT = 3, //NOT YET SUPPORTED BY OVAL 00225 OVAL_ARITHMETIC_DIVIDE = 4 //NOT YET SUPPORTED BY OVAL 00226 } oval_arithmetic_operation_t; 00227 00229 typedef enum { 00230 OVAL_DATETIME_UNKNOWN = 0, 00231 OVAL_DATETIME_YEAR_MONTH_DAY = 1, 00232 OVAL_DATETIME_MONTH_DAY_YEAR = 2, 00233 OVAL_DATETIME_DAY_MONTH_YEAR = 3, 00234 OVAL_DATETIME_WIN_FILETIME = 4, 00235 OVAL_DATETIME_SECONDS_SINCE_EPOCH = 5 00236 } oval_datetime_format_t; 00237 00238 typedef enum { 00239 OVAL_RECORD_FIELD_UNKNOWN = 0, 00240 OVAL_RECORD_FIELD_STATE = 1, 00241 OVAL_RECORD_FIELD_ITEM = 2, 00242 } oval_record_field_type_t; 00243 00247 oval_family_t oval_subtype_get_family(oval_subtype_t); 00248 const char *oval_operator_get_text(oval_operator_t); 00249 const char *oval_subtype_get_text(oval_subtype_t); 00250 const char *oval_family_get_text(oval_family_t); 00251 const char *oval_check_get_text(oval_check_t); 00252 const char *oval_existence_get_text(oval_existence_t); 00253 const char *oval_affected_family_get_text(oval_affected_family_t); 00254 const char *oval_datatype_get_text(oval_datatype_t); 00255 oval_datatype_t oval_datatype_from_text(const char *); 00256 const char *oval_operation_get_text(oval_operation_t); 00257 const char *oval_set_operation_get_text(oval_setobject_operation_t); 00258 const char *oval_datetime_format_get_text(oval_datetime_format_t); 00259 const char *oval_arithmetic_operation_get_text(oval_arithmetic_operation_t); 00260 const char *oval_filter_action_get_text(oval_filter_action_t); 00261 00262 00267 struct oval_definition_model; 00268 00275 struct oval_definition; 00280 struct oval_definition_iterator; 00286 struct oval_test; 00291 struct oval_test_iterator; 00300 struct oval_object; 00305 struct oval_object_iterator; 00312 struct oval_state; 00317 struct oval_state_iterator; 00332 struct oval_variable; 00337 struct oval_variable_iterator; 00358 struct oval_affected; 00363 struct oval_affected_iterator; 00371 struct oval_reference; 00376 struct oval_reference_iterator; 00385 struct oval_criteria_node; 00390 struct oval_criteria_node_iterator; 00395 struct oval_object_content; 00400 struct oval_object_content_iterator; 00405 struct oval_behavior; 00410 struct oval_behavior_iterator; 00415 struct oval_state_content; 00420 struct oval_state_content_iterator; 00425 struct oval_value; 00430 struct oval_value_iterator; 00435 struct oval_entity; 00439 struct oval_entity_iterator; 00443 struct oval_record_field; 00447 struct oval_record_field_iterator; 00452 struct oval_setobject; 00457 struct oval_setobject_iterator; 00462 struct oval_filter; 00466 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 *); 00944 xmlNode *oval_definition_get_metadata(struct oval_definition *); 00950 struct oval_criteria_node *oval_definition_get_criteria(struct oval_definition *); 00967 bool oval_definition_iterator_has_more(struct oval_definition_iterator *); 00973 struct oval_definition *oval_definition_iterator_next(struct oval_definition_iterator *); 00978 void oval_definition_iterator_free(struct oval_definition_iterator *); 01001 struct oval_test *oval_test_new(struct oval_definition_model *, const char *id); 01007 struct oval_test *oval_test_clone(struct oval_definition_model *new_model, struct oval_test *old_test); 01012 void oval_test_free(struct oval_test *); 01013 01027 void oval_test_set_subtype(struct oval_test *, oval_subtype_t subtype); 01033 void oval_test_add_note(struct oval_test *, char *note); 01039 void oval_test_set_comment(struct oval_test *, char *comment); 01044 void oval_test_set_deprecated(struct oval_test *, bool deprecated); 01053 void oval_test_set_version(struct oval_test *, int version); 01058 void oval_test_set_state_operator(struct oval_test *, oval_operator_t); 01067 void oval_test_set_existence(struct oval_test *, oval_existence_t); 01077 void oval_test_set_check(struct oval_test *, oval_check_t); 01086 void oval_test_set_object(struct oval_test *, struct oval_object *); 01092 void oval_test_add_state(struct oval_test *, struct oval_state *); 01103 oval_family_t oval_test_get_family(struct oval_test *); 01108 oval_subtype_t oval_test_get_subtype(struct oval_test *); 01115 struct oval_string_iterator *oval_test_get_notes(struct oval_test *); 01121 char *oval_test_get_comment(struct oval_test *); 01127 char *oval_test_get_id(struct oval_test *); 01132 bool oval_test_get_deprecated(struct oval_test *); 01137 int oval_test_get_version(struct oval_test *); 01142 oval_operator_t oval_test_get_state_operator(struct oval_test *); 01147 oval_existence_t oval_test_get_existence(struct oval_test *); 01152 oval_check_t oval_test_get_check(struct oval_test *); 01158 struct oval_object *oval_test_get_object(struct oval_test *); 01165 struct oval_state_iterator *oval_test_get_states(struct oval_test *); 01166 01183 bool oval_test_iterator_has_more(struct oval_test_iterator *); 01188 struct oval_test *oval_test_iterator_next(struct oval_test_iterator *); 01193 void oval_test_iterator_free(struct oval_test_iterator *); 01214 struct oval_object *oval_object_new(struct oval_definition_model *, const char *id); 01220 struct oval_object *oval_object_clone(struct oval_definition_model *new_model, struct oval_object *old_object); 01225 void oval_object_free(struct oval_object *); 01226 01240 void oval_object_set_subtype(struct oval_object *, oval_subtype_t subtype); 01246 void oval_object_add_note(struct oval_object *, char *note); 01247 01253 void oval_object_set_comment(struct oval_object *, char *comment); 01254 01259 void oval_object_set_deprecated(struct oval_object *, bool deprecated); 01268 void oval_object_set_version(struct oval_object *, int version); 01281 void oval_object_add_object_content(struct oval_object *, struct oval_object_content *content); 01294 void oval_object_add_behavior(struct oval_object *, struct oval_behavior *behavior); 01305 oval_family_t oval_object_get_family(struct oval_object *); 01311 const char *oval_object_get_name(struct oval_object *); 01316 oval_subtype_t oval_object_get_subtype(struct oval_object *); 01323 struct oval_string_iterator *oval_object_get_notes(struct oval_object *); 01329 char *oval_object_get_comment(struct oval_object *); 01335 char *oval_object_get_id(struct oval_object *); 01336 01341 bool oval_object_get_deprecated(struct oval_object *); 01346 int oval_object_get_version(struct oval_object *); 01353 struct oval_object_content_iterator *oval_object_get_object_contents(struct oval_object *); 01360 struct oval_behavior_iterator *oval_object_get_behaviors(struct oval_object *); 01377 bool oval_object_iterator_has_more(struct oval_object_iterator *); 01382 struct oval_object *oval_object_iterator_next(struct oval_object_iterator *); 01387 void oval_object_iterator_free(struct oval_object_iterator *); 01408 struct oval_state *oval_state_new(struct oval_definition_model *, const char *id); 01414 struct oval_state *oval_state_clone(struct oval_definition_model *new_model, struct oval_state *old_state); 01419 void oval_state_free(struct oval_state *); 01420 01434 void oval_state_set_subtype(struct oval_state *, oval_subtype_t subtype); 01440 void oval_state_add_note(struct oval_state *, char *note); 01446 void oval_state_set_comment(struct oval_state *, char *comment); 01451 void oval_state_set_deprecated(struct oval_state *, bool deprecated); 01460 void oval_state_set_version(struct oval_state *, int version); 01465 void oval_state_set_operator(struct oval_state *, oval_operator_t); 01478 void oval_state_add_content(struct oval_state *, struct oval_state_content *content); 01489 oval_family_t oval_state_get_family(struct oval_state *); 01495 const char *oval_state_get_name(struct oval_state *); 01500 oval_subtype_t oval_state_get_subtype(struct oval_state *); 01507 struct oval_string_iterator *oval_state_get_notes(struct oval_state *); 01513 char *oval_state_get_comment(struct oval_state *); 01519 char *oval_state_get_id(struct oval_state *); 01524 bool oval_state_get_deprecated(struct oval_state *); 01529 int oval_state_get_version(struct oval_state *); 01534 int oval_state_get_operator(struct oval_state *); 01541 struct oval_state_content_iterator *oval_state_get_contents(struct oval_state *); 01552 bool oval_state_iterator_has_more(struct oval_state_iterator *); 01557 struct oval_state *oval_state_iterator_next(struct oval_state_iterator *); 01562 void oval_state_iterator_free(struct oval_state_iterator *); 01595 struct oval_variable *oval_variable_new(struct oval_definition_model *model, const char *id, oval_variable_type_t type); 01601 struct oval_variable *oval_variable_clone(struct oval_definition_model *new_model, struct oval_variable *old_variable); 01606 void oval_variable_free(struct oval_variable *); 01607 01619 void oval_variable_set_comment(struct oval_variable *, char *comment); 01627 void oval_variable_set_version(struct oval_variable *, int version); 01633 void oval_variable_set_deprecated(struct oval_variable *, bool deprecated); 01641 void oval_variable_set_datatype(struct oval_variable *, oval_datatype_t); 01655 void oval_variable_add_value(struct oval_variable *, struct oval_value *); //type==OVAL_VARIABLE_CONSTANT 01656 01657 void oval_variable_clear_values(struct oval_variable *); 01670 void oval_variable_set_component(struct oval_variable *, struct oval_component *component); //type==OVAL_VARIABLE_LOCAL 01682 char *oval_variable_get_id(struct oval_variable *); 01688 char *oval_variable_get_comment(struct oval_variable *); 01693 int oval_variable_get_version(struct oval_variable *); 01698 bool oval_variable_get_deprecated(struct oval_variable *); 01703 oval_variable_type_t oval_variable_get_type(struct oval_variable *); 01708 oval_datatype_t oval_variable_get_datatype(struct oval_variable *); 01716 struct oval_value_iterator *oval_variable_get_values(struct oval_variable *); //type==OVAL_VARIABLE_CONSTANT 01723 struct oval_component *oval_variable_get_component(struct oval_variable *); //type==OVAL_VARIABLE_LOCAL 01728 const char *oval_component_type_get_text(oval_component_type_t type); 01739 bool oval_variable_iterator_has_more(struct oval_variable_iterator *); 01744 struct oval_variable *oval_variable_iterator_next(struct oval_variable_iterator *); 01749 void oval_variable_iterator_free(struct oval_variable_iterator *); 01762 struct oval_affected *oval_affected_new(struct oval_definition_model *); 01768 struct oval_affected *oval_affected_clone(struct oval_definition_model *new_model, struct oval_affected *old_affected); 01773 void oval_affected_free(struct oval_affected *); 01774 01783 void oval_affected_set_family(struct oval_affected *, oval_affected_family_t family); 01788 void oval_affected_add_platform(struct oval_affected *, char *platform_name); 01793 void oval_affected_add_product(struct oval_affected *, char *product_name); 01806 oval_affected_family_t oval_affected_get_family(struct oval_affected *); 01814 struct oval_string_iterator *oval_affected_get_platforms(struct oval_affected *); 01822 struct oval_string_iterator *oval_affected_get_products(struct oval_affected *); 01839 bool oval_affected_iterator_has_more(struct oval_affected_iterator *); 01844 struct oval_affected *oval_affected_iterator_next(struct oval_affected_iterator *); 01849 void oval_affected_iterator_free(struct oval_affected_iterator *); 01855 struct oval_reference *oval_reference_new(struct oval_definition_model *); 01860 struct oval_reference *oval_reference_clone 01861 (struct oval_definition_model *new_model, struct oval_reference *old_reference); 01865 void oval_reference_free(struct oval_reference *); 01866 01876 void oval_reference_set_source(struct oval_reference *, char *); 01880 void oval_reference_set_id(struct oval_reference *, char *); 01884 void oval_reference_set_url(struct oval_reference *, char *); 01896 char *oval_reference_get_source(struct oval_reference *); 01902 char *oval_reference_get_id(struct oval_reference *); 01908 char *oval_reference_get_url(struct oval_reference *); 01918 bool oval_reference_iterator_has_more(struct oval_reference_iterator *); 01922 struct oval_reference *oval_reference_iterator_next(struct oval_reference_iterator *); 01926 void oval_reference_iterator_free(struct oval_reference_iterator *); 01955 struct oval_criteria_node *oval_criteria_node_new(struct oval_definition_model *, oval_criteria_node_type_t type); 01961 struct oval_criteria_node *oval_criteria_node_clone 01962 (struct oval_definition_model *new_model, struct oval_criteria_node *old_node); 01967 void oval_criteria_node_free(struct oval_criteria_node *); 01968 01978 void oval_criteria_node_set_negate(struct oval_criteria_node *, bool negate); 01984 void oval_criteria_set_node_type(struct oval_criteria_node *node, oval_criteria_node_type_t type); 01990 void oval_criteria_node_set_comment(struct oval_criteria_node *, char *comment); 01998 void oval_criteria_node_set_operator(struct oval_criteria_node *, oval_operator_t op); 02009 void oval_criteria_node_add_subnode(struct oval_criteria_node *, struct oval_criteria_node *node); 02017 void oval_criteria_node_set_test(struct oval_criteria_node *, struct oval_test *); 02025 void oval_criteria_node_set_definition(struct oval_criteria_node *, struct oval_definition *); //type==NODETYPE_EXTENDDEF 02036 oval_criteria_node_type_t oval_criteria_node_get_type(struct oval_criteria_node *); 02041 bool oval_criteria_node_get_negate(struct oval_criteria_node *); 02047 char *oval_criteria_node_get_comment(struct oval_criteria_node *); 02053 oval_operator_t oval_criteria_node_get_operator(struct oval_criteria_node *); 02061 struct oval_criteria_node_iterator *oval_criteria_node_get_subnodes(struct oval_criteria_node *); 02068 struct oval_test *oval_criteria_node_get_test(struct oval_criteria_node *); 02075 struct oval_definition *oval_criteria_node_get_definition(struct oval_criteria_node *); 02086 bool oval_criteria_node_iterator_has_more(struct oval_criteria_node_iterator *); 02092 struct oval_criteria_node *oval_criteria_node_iterator_next(struct oval_criteria_node_iterator *); 02097 void oval_criteria_node_iterator_free(struct oval_criteria_node_iterator *); 02109 struct oval_object_content *oval_object_content_new(struct oval_definition_model *model, oval_object_content_type_t type); 02110 02115 struct oval_object_content *oval_object_content_clone 02116 (struct oval_definition_model *new_model, struct oval_object_content *old_content); 02117 02121 void oval_object_content_free(struct oval_object_content *); 02122 02131 void oval_object_content_set_type(struct oval_object_content *, oval_object_content_type_t); 02135 void oval_object_content_set_field_name(struct oval_object_content *, char *); 02139 void oval_object_content_set_entity(struct oval_object_content *, struct oval_entity *); //type == OVAL_OBJECTCONTENT_ENTITY 02143 void oval_object_content_set_varCheck(struct oval_object_content *, oval_check_t); //type == OVAL_OBJECTCONTENT_ENTITY 02147 void oval_object_content_set_setobject(struct oval_object_content *, struct oval_setobject *); //type == OVAL_OBJECTCONTENT_SET 02159 char *oval_object_content_get_field_name(struct oval_object_content *); 02164 oval_object_content_type_t oval_object_content_get_type(struct oval_object_content *); 02170 struct oval_entity *oval_object_content_get_entity(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_ENTITY 02175 oval_check_t oval_object_content_get_varCheck(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_ENTITY 02181 struct oval_setobject *oval_object_content_get_setobject(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_SET 02191 bool oval_object_content_iterator_has_more(struct oval_object_content_iterator *); 02195 struct oval_object_content *oval_object_content_iterator_next(struct oval_object_content_iterator *); 02199 void oval_object_content_iterator_free(struct oval_object_content_iterator *); 02211 struct oval_behavior *oval_behavior_new(struct oval_definition_model *); 02212 02217 struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior); 02221 void oval_behavior_free(struct oval_behavior *); 02222 02230 void oval_behavior_set_keyval(struct oval_behavior *behavior, const char *key, const char *value); 02242 char *oval_behavior_get_key(struct oval_behavior *); 02248 char *oval_behavior_get_value(struct oval_behavior *); 02258 bool oval_behavior_iterator_has_more(struct oval_behavior_iterator *); 02262 struct oval_behavior *oval_behavior_iterator_next(struct oval_behavior_iterator *); 02266 void oval_behavior_iterator_free(struct oval_behavior_iterator *); 02278 struct oval_state_content *oval_state_content_new(struct oval_definition_model *); 02283 struct oval_state_content *oval_state_content_clone (struct oval_definition_model *new_model, struct oval_state_content *old_content); 02287 void oval_state_content_free(struct oval_state_content *); 02288 02296 void oval_state_content_set_entity(struct oval_state_content *, struct oval_entity *); 02300 void oval_state_content_add_record_field(struct oval_state_content *, struct oval_record_field *); 02304 void oval_state_content_set_varcheck(struct oval_state_content *, oval_check_t); 02308 void oval_state_content_set_entcheck(struct oval_state_content *, oval_check_t); 02320 struct oval_entity *oval_state_content_get_entity(struct oval_state_content *); 02324 struct oval_record_field_iterator *oval_state_content_get_record_fields(struct oval_state_content *); 02329 oval_check_t oval_state_content_get_var_check(struct oval_state_content *); 02334 oval_check_t oval_state_content_get_ent_check(struct oval_state_content *); 02345 bool oval_state_content_iterator_has_more(struct oval_state_content_iterator *); 02349 struct oval_state_content *oval_state_content_iterator_next(struct oval_state_content_iterator *); 02353 void oval_state_content_iterator_free(struct oval_state_content_iterator *); 02359 struct oval_value *oval_value_new(oval_datatype_t datatype, char *text_value); 02364 struct oval_value *oval_value_clone(struct oval_value *old_value); 02368 void oval_value_free(struct oval_value *); 02369 02378 oval_datatype_t oval_value_get_datatype(struct oval_value *); 02384 char *oval_value_get_text(struct oval_value *); 02389 unsigned char *oval_value_get_binary(struct oval_value *); //datatype==OVAL_DATATYPE_BINARY 02394 bool oval_value_get_boolean(struct oval_value *); //datatype==OVAL_DATATYPE_BOOLEAN 02399 float oval_value_get_float(struct oval_value *); //datatype==OVAL_DATATYPE_FLOAT 02404 long long oval_value_get_integer(struct oval_value *); //datatype==OVAL_DATATYPE_INTEGER 02414 bool oval_value_iterator_has_more(struct oval_value_iterator *); 02418 struct oval_value *oval_value_iterator_next(struct oval_value_iterator *); 02422 int oval_value_iterator_remaining(struct oval_value_iterator *iterator); 02426 void oval_value_iterator_free(struct oval_value_iterator *); 02438 struct oval_entity *oval_entity_new(struct oval_definition_model *); 02443 struct oval_entity *oval_entity_clone(struct oval_definition_model *model, struct oval_entity *old_entity); 02447 void oval_entity_free(struct oval_entity *); 02448 02456 void oval_entity_set_type(struct oval_entity *, oval_entity_type_t); 02460 void oval_entity_set_datatype(struct oval_entity *, oval_datatype_t); 02464 void oval_entity_set_mask(struct oval_entity *, int); 02468 void oval_entity_set_varref_type(struct oval_entity *, oval_entity_varref_type_t); 02472 void oval_entity_set_variable(struct oval_entity *, struct oval_variable *); 02476 void oval_entity_set_value(struct oval_entity *, struct oval_value *); 02480 void oval_entity_set_name(struct oval_entity *, char *); 02484 void oval_entity_set_operation(struct oval_entity *, oval_operation_t); 02496 char *oval_entity_get_name(struct oval_entity *); 02501 oval_entity_type_t oval_entity_get_type(struct oval_entity *); 02506 oval_datatype_t oval_entity_get_datatype(struct oval_entity *); 02511 oval_operation_t oval_entity_get_operation(struct oval_entity *); 02517 struct oval_variable *oval_entity_get_variable(struct oval_entity *); 02523 struct oval_value *oval_entity_get_value(struct oval_entity *); 02528 int oval_entity_get_mask(struct oval_entity *); 02533 oval_entity_varref_type_t oval_entity_get_varref_type(struct oval_entity *); 02543 bool oval_entity_iterator_has_more(struct oval_entity_iterator *); 02547 struct oval_entity *oval_entity_iterator_next(struct oval_entity_iterator *); 02551 void oval_entity_iterator_free(struct oval_entity_iterator *); 02563 struct oval_record_field *oval_record_field_new(oval_record_field_type_t); 02567 struct oval_record_field *oval_record_field_clone(struct oval_record_field *); 02571 void oval_record_field_free(struct oval_record_field *); 02572 02580 void oval_record_field_set_name(struct oval_record_field *, char *); 02584 void oval_record_field_set_value(struct oval_record_field *, char *); 02588 void oval_record_field_set_datatype(struct oval_record_field *, oval_datatype_t); 02592 void oval_record_field_set_mask(struct oval_record_field *, int); 02596 void oval_record_field_set_operation(struct oval_record_field *, oval_operation_t); 02600 void oval_record_field_set_variable(struct oval_record_field *, struct oval_variable *); 02604 void oval_record_field_set_var_check(struct oval_record_field *, oval_check_t); 02608 void oval_record_field_set_ent_check(struct oval_record_field *, oval_check_t); 02618 oval_record_field_type_t oval_record_field_get_type(struct oval_record_field *); 02622 char *oval_record_field_get_name(struct oval_record_field *); 02626 char *oval_record_field_get_value(struct oval_record_field *); 02630 oval_datatype_t oval_record_field_get_datatype(struct oval_record_field *); 02634 int oval_record_field_get_mask(struct oval_record_field *); 02638 oval_operation_t oval_record_field_get_operation(struct oval_record_field *); 02642 struct oval_variable *oval_record_field_get_variable(struct oval_record_field *); 02646 oval_check_t oval_record_field_get_var_check(struct oval_record_field *); 02650 oval_check_t oval_record_field_get_ent_check(struct oval_record_field *); 02660 bool oval_record_field_iterator_has_more(struct oval_record_field_iterator *); 02664 struct oval_record_field *oval_record_field_iterator_next(struct oval_record_field_iterator *); 02668 void oval_record_field_iterator_free(struct oval_record_field_iterator *); 02680 struct oval_filter *oval_filter_new(struct oval_definition_model *); 02684 void oval_filter_free(struct oval_filter *); 02688 struct oval_filter *oval_filter_clone(struct oval_definition_model *, struct oval_filter *); 02689 02697 void oval_filter_set_state(struct oval_filter *, struct oval_state *); 02701 void oval_filter_set_filter_action(struct oval_filter *, oval_filter_action_t ); 02711 struct oval_state *oval_filter_get_state(struct oval_filter *); 02715 oval_filter_action_t oval_filter_get_filter_action(struct oval_filter *); 02725 bool oval_filter_iterator_has_more(struct oval_filter_iterator *); 02729 struct oval_filter *oval_filter_iterator_next(struct oval_filter_iterator *); 02733 void oval_filter_iterator_free(struct oval_filter_iterator *); 02745 struct oval_setobject *oval_setobject_new(struct oval_definition_model *); 02750 struct oval_setobject *oval_setobject_clone(struct oval_definition_model *new_model, struct oval_setobject *old_setobject); 02754 void oval_setobject_free(struct oval_setobject *); 02755 02762 void oval_setobject_set_type(struct oval_setobject *, oval_setobject_type_t); 02766 void oval_setobject_set_operation(struct oval_setobject *, oval_setobject_operation_t); 02770 void oval_setobject_add_subset(struct oval_setobject *, struct oval_setobject *); //type==OVAL_SET_AGGREGATE; 02774 void oval_setobject_add_object(struct oval_setobject *, struct oval_object *); //type==OVAL_SET_COLLECTIVE; 02778 void oval_setobject_add_filter(struct oval_setobject *, struct oval_filter *); //type==OVAL_SET_COLLECTIVE; 02789 oval_setobject_type_t oval_setobject_get_type(struct oval_setobject *); 02794 oval_setobject_operation_t oval_setobject_get_operation(struct oval_setobject *); 02802 struct oval_setobject_iterator *oval_setobject_get_subsets(struct oval_setobject *); //type==OVAL_SET_AGGREGATE; 02810 struct oval_object_iterator *oval_setobject_get_objects(struct oval_setobject *); //type==OVAL_SET_COLLECTIVE; 02818 struct oval_filter_iterator *oval_setobject_get_filters(struct oval_setobject *); //type==OVAL_SET_COLLECTIVE; 02828 bool oval_setobject_iterator_has_more(struct oval_setobject_iterator *); 02832 struct oval_setobject *oval_setobject_iterator_next(struct oval_setobject_iterator *); 02836 void oval_setobject_iterator_free(struct oval_setobject_iterator *); 02886 struct oval_component *oval_component_new(struct oval_definition_model *, oval_component_type_t type); 02892 struct oval_component *oval_component_clone(struct oval_definition_model *new_model, 02893 struct oval_component *old_component); 02898 void oval_component_free(struct oval_component *); 02899 02908 void oval_component_set_type(struct oval_component *component, oval_component_type_t type); 02914 void oval_component_set_object(struct oval_component *, struct oval_object *object); 02919 void oval_component_set_item_field(struct oval_component *, char *); 02924 void oval_component_set_record_field(struct oval_component *, char *); 02930 void oval_component_set_variable(struct oval_component *, struct oval_variable *variable); 02934 void oval_component_add_function_component(struct oval_component *, struct oval_component *); //type==OVAL_COMPONENT_FUNCTION 02938 void oval_component_set_arithmetic_operation(struct oval_component *, oval_arithmetic_operation_t); //type==OVAL_COMPONENT_ARITHMETIC 02942 void oval_component_set_prefix(struct oval_component *, char *); //type==OVAL_COMPONENT_BEGIN 02946 void oval_component_set_suffix(struct oval_component *, char *); //type==OVAL_COMPONENT_END 02950 void oval_component_set_split_delimiter(struct oval_component *, char *); //type==OVAL_COMPONENT_SPLIT 02954 void oval_component_set_substring_start(struct oval_component *, int); //type==OVAL_COMPONENT_SUBSTRING 02958 void oval_component_set_substring_length(struct oval_component *, int); //type==OVAL_COMPONENT_SUBSTRING 02962 void oval_component_set_timedif_format_1(struct oval_component *, oval_datetime_format_t); //type==OVAL_COMPONENT_TIMEDIF 02966 void oval_component_set_timedif_format_2(struct oval_component *, oval_datetime_format_t); //type==OVAL_COMPONENT_TIMEDIF 02970 void oval_component_set_regex_pattern(struct oval_component *, char *); //type==OVAL_COMPONENT_REGEX_CAPTURE 02974 void oval_component_set_literal_value(struct oval_component *, struct oval_value *); //type==OVAL_COMPONENT_LITERAL 02985 oval_component_type_t oval_component_get_type(struct oval_component *); 02993 struct oval_object *oval_component_get_object(struct oval_component *); //type==OVAL_COMPONENT_OBJECTREF 03000 char *oval_component_get_item_field(struct oval_component *); 03007 char *oval_component_get_record_field(struct oval_component *); 03015 struct oval_variable *oval_component_get_variable(struct oval_component *); 03023 struct oval_component_iterator *oval_component_get_function_components(struct oval_component *); //type==OVAL_COMPONENT_FUNCTION 03029 oval_arithmetic_operation_t oval_component_get_arithmetic_operation(struct oval_component *); //type==OVAL_COMPONENT_ARITHMETIC 03037 char *oval_component_get_prefix(struct oval_component *); //type==OVAL_COMPONENT_BEGIN 03045 char *oval_component_get_suffix(struct oval_component *); //type==OVAL_COMPONENT_END 03053 char *oval_component_get_split_delimiter(struct oval_component *); //type==OVAL_COMPONENT_SPLIT 03059 int oval_component_get_substring_start(struct oval_component *); //type==OVAL_COMPONENT_SUBSTRING 03065 int oval_component_get_substring_length(struct oval_component *); //type==OVAL_COMPONENT_SUBSTRING 03071 oval_datetime_format_t oval_component_get_timedif_format_1(struct oval_component *); //type==OVAL_COMPONENT_TIMEDIF 03077 oval_datetime_format_t oval_component_get_timedif_format_2(struct oval_component *); //type==OVAL_COMPONENT_TIMEDIF 03085 char *oval_component_get_regex_pattern(struct oval_component *); //type==OVAL_COMPONENT_REGEX_CAPTURE 03093 struct oval_value *oval_component_get_literal_value(struct oval_component *); //type==OVAL_COMPONENT_LITERAL 03104 bool oval_component_iterator_has_more(struct oval_component_iterator *); 03110 struct oval_component *oval_component_iterator_next(struct oval_component_iterator *); 03115 void oval_component_iterator_free(struct oval_component_iterator *); 03120 int oval_component_iterator_remaining(struct oval_component_iterator *); 03137 bool oval_string_iterator_has_more(struct oval_string_iterator *); 03142 char *oval_string_iterator_next(struct oval_string_iterator *); 03147 int oval_string_iterator_remaining(struct oval_string_iterator *); 03152 void oval_string_iterator_free(struct oval_string_iterator *); 03159 #endif