Open SCAP Library
oval_definitions.h
Go to the documentation of this file.
1 
16 /*
17  * Copyright 2009-2010 Red Hat Inc., Durham, North Carolina.
18  * All Rights Reserved.
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This library is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
33  *
34  * Authors:
35  * "David Niemoller" <David.Niemoller@g2-inc.com>
36  */
37 
38 
39 #ifndef OVAL_DEFINITIONS
40 #define OVAL_DEFINITIONS
41 
42 #include "oval_types.h"
43 #include "oval_version.h"
44 #include <stdbool.h>
45 
51 typedef enum {
52  OVAL_AFCFML_UNKNOWN = 0,
53  OVAL_AFCFML_CATOS = 1,
54  OVAL_AFCFML_IOS = 2,
55  OVAL_AFCFML_MACOS = 3,
56  OVAL_AFCFML_PIXOS = 4,
57  OVAL_AFCFML_UNDEFINED = 5,
58  OVAL_AFCFML_UNIX = 6,
59  OVAL_AFCFML_WINDOWS = 7
61 
63 typedef enum {
64  OVAL_NODETYPE_UNKNOWN = 0,
65  OVAL_NODETYPE_CRITERIA = 1,
66  OVAL_NODETYPE_CRITERION = 2,
67  OVAL_NODETYPE_EXTENDDEF = 3
69 
71 typedef enum {
72  OVAL_OPERATOR_UNKNOWN = 0,
73  OVAL_OPERATOR_AND = 1,
74  OVAL_OPERATOR_ONE = 2,
75  OVAL_OPERATOR_OR = 3,
76  OVAL_OPERATOR_XOR = 4
78 
80 typedef enum {
81  OVAL_OPERATION_UNKNOWN = 0,
82  OVAL_OPERATION_BITWISE_AND,
83  OVAL_OPERATION_BITWISE_OR,
84  OVAL_OPERATION_CASE_INSENSITIVE_EQUALS,
85  OVAL_OPERATION_CASE_INSENSITIVE_NOT_EQUAL,
86  OVAL_OPERATION_EQUALS,
87  OVAL_OPERATION_GREATER_THAN,
88  OVAL_OPERATION_GREATER_THAN_OR_EQUAL,
89  OVAL_OPERATION_LESS_THAN,
90  OVAL_OPERATION_LESS_THAN_OR_EQUAL,
91  OVAL_OPERATION_NOT_EQUAL,
92  OVAL_OPERATION_PATTERN_MATCH,
93  OVAL_OPERATION_SUBSET_OF,
94  OVAL_OPERATION_SUPERSET_OF,
96 
97 
99 typedef enum {
100  OVAL_EXISTENCE_UNKNOWN = 0,
101  OVAL_ALL_EXIST = 1,
102  OVAL_ANY_EXIST = 2,
103  OVAL_AT_LEAST_ONE_EXISTS = 3,
104  OVAL_ONLY_ONE_EXISTS = 4,
105  OVAL_NONE_EXIST = 5
107 
109 typedef enum {
110  OVAL_CHECK_UNKNOWN = 0,
111  OVAL_CHECK_ALL = 1,
112  OVAL_CHECK_AT_LEAST_ONE = 2,
113  OVAL_CHECK_NONE_EXIST = 3,
114  OVAL_CHECK_NONE_SATISFY = 4,
115  OVAL_CHECK_ONLY_ONE = 5
116 } oval_check_t;
117 
119 typedef enum {
120  OVAL_OBJECTCONTENT_UNKNOWN = 0,
121  OVAL_OBJECTCONTENT_ENTITY = 1,
122  OVAL_OBJECTCONTENT_SET = 2,
123  OVAL_OBJECTCONTENT_FILTER = 3
125 
127 typedef enum {
128  OVAL_ENTITY_TYPE_UNKNOWN,
129  OVAL_ENTITY_TYPE_ANY,
130  OVAL_ENTITY_TYPE_BINARY,
131  OVAL_ENTITY_TYPE_BOOLEAN,
132  OVAL_ENTITY_TYPE_FLOAT,
133  OVAL_ENTITY_TYPE_INTEGER,
134  OVAL_ENTITY_TYPE_STRING,
136 
138 typedef enum {
139  OVAL_FILTER_ACTION_UNKNOWN = 0,
140  OVAL_FILTER_ACTION_EXCLUDE,
141  OVAL_FILTER_ACTION_INCLUDE
143 
145 typedef enum {
146  OVAL_DATATYPE_UNKNOWN = 0,
147  OVAL_DATATYPE_BINARY,
148  OVAL_DATATYPE_BOOLEAN,
149  OVAL_DATATYPE_EVR_STRING,
150  OVAL_DATATYPE_FILESET_REVISION,
151  OVAL_DATATYPE_FLOAT,
152  OVAL_DATATYPE_INTEGER,
153  OVAL_DATATYPE_IOS_VERSION,
154  OVAL_DATATYPE_IPV4ADDR,
155  OVAL_DATATYPE_IPV6ADDR,
156  OVAL_DATATYPE_RECORD,
157  OVAL_DATATYPE_SEXP,
158  OVAL_DATATYPE_STRING,
159  OVAL_DATATYPE_STRING_M,
160  OVAL_DATATYPE_VERSION,
162 
164 typedef enum {
165  OVAL_ENTITY_VARREF_UNKNOWN,
166  OVAL_ENTITY_VARREF_NONE,
167  OVAL_ENTITY_VARREF_ATTRIBUTE,
168  OVAL_ENTITY_VARREF_ELEMENT
170 
172 typedef enum {
173  OVAL_SET_UNKNOWN,
174  OVAL_SET_AGGREGATE,
175  OVAL_SET_COLLECTIVE
177 
179 typedef enum {
180  OVAL_SET_OPERATION_UNKNOWN,
181  OVAL_SET_OPERATION_COMPLEMENT = 1,
182  OVAL_SET_OPERATION_INTERSECTION = 2,
183  OVAL_SET_OPERATION_UNION = 3
185 
187 typedef enum {
188  OVAL_VARIABLE_UNKNOWN,
189  OVAL_VARIABLE_EXTERNAL,
190  OVAL_VARIABLE_CONSTANT,
191  OVAL_VARIABLE_LOCAL
193 
194 #define OVAL_FUNCTION 4
195 
196 typedef enum {
197  OVAL_COMPONENT_UNKNOWN = 0,
198  OVAL_COMPONENT_LITERAL = 1,
199  OVAL_COMPONENT_OBJECTREF = 2,
200  OVAL_COMPONENT_VARREF = 3,
201  OVAL_COMPONENT_FUNCTION = 4,
202  OVAL_FUNCTION_BEGIN = OVAL_FUNCTION + 1,
203  OVAL_FUNCTION_CONCAT = OVAL_FUNCTION + 2,
204  OVAL_FUNCTION_END = OVAL_FUNCTION + 3,
205  OVAL_FUNCTION_SPLIT = OVAL_FUNCTION + 4,
206  OVAL_FUNCTION_SUBSTRING = OVAL_FUNCTION + 5,
207  OVAL_FUNCTION_TIMEDIF = OVAL_FUNCTION + 6,
208  OVAL_FUNCTION_ESCAPE_REGEX = OVAL_FUNCTION + 7,
209  OVAL_FUNCTION_REGEX_CAPTURE = OVAL_FUNCTION + 8,
210  OVAL_FUNCTION_ARITHMETIC = OVAL_FUNCTION + 9,
211  OVAL_FUNCTION_COUNT = OVAL_FUNCTION + 10,
212  OVAL_FUNCTION_UNIQUE = OVAL_FUNCTION + 11,
213  OVAL_FUNCTION_LAST = OVAL_FUNCTION + 12
215 
217 typedef enum {
218  OVAL_ARITHMETIC_UNKNOWN = 0,
219  OVAL_ARITHMETIC_ADD = 1,
220  OVAL_ARITHMETIC_MULTIPLY = 2,
221  OVAL_ARITHMETIC_SUBTRACT = 3, //NOT YET SUPPORTED BY OVAL
222  OVAL_ARITHMETIC_DIVIDE = 4 //NOT YET SUPPORTED BY OVAL
224 
226 typedef enum {
227  OVAL_DATETIME_UNKNOWN = 0,
228  OVAL_DATETIME_YEAR_MONTH_DAY = 1,
229  OVAL_DATETIME_MONTH_DAY_YEAR = 2,
230  OVAL_DATETIME_DAY_MONTH_YEAR = 3,
231  OVAL_DATETIME_WIN_FILETIME = 4,
232  OVAL_DATETIME_SECONDS_SINCE_EPOCH = 5
234 
235 typedef enum {
236  OVAL_RECORD_FIELD_UNKNOWN = 0,
237  OVAL_RECORD_FIELD_STATE = 1,
238  OVAL_RECORD_FIELD_ITEM = 2,
239 } oval_record_field_type_t;
240 
245 const char *oval_operator_get_text(oval_operator_t);
246 const char *oval_subtype_get_text(oval_subtype_t);
247 const char *oval_family_get_text(oval_family_t);
248 const char *oval_check_get_text(oval_check_t);
249 const char *oval_existence_get_text(oval_existence_t);
250 const char *oval_affected_family_get_text(oval_affected_family_t);
251 const char *oval_datatype_get_text(oval_datatype_t);
252 oval_datatype_t oval_datatype_from_text(const char *);
253 const char *oval_operation_get_text(oval_operation_t);
254 const char *oval_set_operation_get_text(oval_setobject_operation_t);
255 const char *oval_datetime_format_get_text(oval_datetime_format_t);
256 const char *oval_arithmetic_operation_get_text(oval_arithmetic_operation_t);
257 const char *oval_filter_action_get_text(oval_filter_action_t);
258 
259 
264 struct oval_definition_model;
265 
283 struct oval_test;
288 struct oval_test_iterator;
297 struct oval_object;
302 struct oval_object_iterator;
309 struct oval_state;
314 struct oval_state_iterator;
422 struct oval_value;
427 struct oval_value_iterator;
432 struct oval_entity;
436 struct oval_entity_iterator;
454 struct oval_setobject_iterator;
459 struct oval_filter;
463 struct oval_filter_iterator;
579 struct oval_string_iterator;
580 
584 struct oval_generator;
585 
586 struct oval_generator *oval_generator_new(void);
587 void oval_generator_free(struct oval_generator *generator);
588 struct oval_generator *oval_generator_clone(struct oval_generator *old_generator);
589 char *oval_generator_get_product_name(struct oval_generator *generator);
590 char *oval_generator_get_product_version(struct oval_generator *generator);
591 char *oval_generator_get_schema_version(struct oval_generator *generator);
592 char *oval_generator_get_timestamp(struct oval_generator *generator);
593 void oval_generator_set_product_name(struct oval_generator *generator, char *product_name);
594 void oval_generator_set_product_version(struct oval_generator *generator, char *product_version);
595 void oval_generator_set_schema_version(struct oval_generator *generator, char *schema_version);
596 void oval_generator_set_timestamp(struct oval_generator *generator, char *timestamp);
597 
609 struct oval_definition_model * oval_definition_model_import(const char *file);
610 
619 int oval_definition_model_merge(struct oval_definition_model *model, const char *file);
620 
632 int oval_definition_model_export(struct oval_definition_model *, const char *file);
638 
643 void oval_definition_model_set_generator(struct oval_definition_model *model, struct oval_generator *generator);
650 
651 void oval_definition_model_clear_external_variables(struct oval_definition_model *);
658 struct oval_generator *oval_definition_model_get_generator(struct oval_definition_model *model);
675 struct oval_test *oval_definition_model_get_test(struct oval_definition_model *model, const char *id);
684 struct oval_object *oval_definition_model_get_object(struct oval_definition_model *model, const char *id);
693 struct oval_state *oval_definition_model_get_state(struct oval_definition_model *model, const char *id);
702 struct oval_variable *oval_definition_model_get_variable(struct oval_definition_model *model, const char *id);
736 
742 const char * oval_definition_model_supported(void);
774 struct oval_definition *oval_definition_new(struct oval_definition_model *, const char *id);
775 
781 struct oval_definition *oval_definition_clone(struct oval_definition_model *new_model, struct oval_definition *old_definition);
782 
793 
805 void oval_definition_set_version(struct oval_definition *, int version);
819 void oval_definition_set_deprecated(struct oval_definition *, bool deprecated);
827 void oval_definition_set_title(struct oval_definition *, char *title);
835 void oval_definition_set_description(struct oval_definition *, char *description);
846 void oval_definition_add_affected(struct oval_definition *, struct oval_affected *affected);
857 void oval_definition_add_reference(struct oval_definition *, struct oval_reference *reference);
863 void oval_definition_add_note(struct oval_definition *, char *note);
877 void oval_definition_set_criteria(struct oval_definition *, struct oval_criteria_node *criteria);
994 struct oval_test *oval_test_new(struct oval_definition_model *, const char *id);
1000 struct oval_test *oval_test_clone(struct oval_definition_model *new_model, struct oval_test *old_test);
1005 void oval_test_free(struct oval_test *);
1006 
1020 void oval_test_set_subtype(struct oval_test *, oval_subtype_t subtype);
1026 void oval_test_add_note(struct oval_test *, char *note);
1032 void oval_test_set_comment(struct oval_test *, char *comment);
1037 void oval_test_set_deprecated(struct oval_test *, bool deprecated);
1046 void oval_test_set_version(struct oval_test *, int version);
1079 void oval_test_set_object(struct oval_test *, struct oval_object *);
1085 void oval_test_add_state(struct oval_test *, struct oval_state *);
1114 char *oval_test_get_comment(struct oval_test *);
1120 char *oval_test_get_id(struct oval_test *);
1125 bool oval_test_get_deprecated(struct oval_test *);
1130 int oval_test_get_version(struct oval_test *);
1151 struct oval_object *oval_test_get_object(struct oval_test *);
1159 
1207 struct oval_object *oval_object_new(struct oval_definition_model *, const char *id);
1213 struct oval_object *oval_object_clone(struct oval_definition_model *new_model, struct oval_object *old_object);
1218 void oval_object_free(struct oval_object *);
1219 
1233 void oval_object_set_subtype(struct oval_object *, oval_subtype_t subtype);
1239 void oval_object_add_note(struct oval_object *, char *note);
1240 
1246 void oval_object_set_comment(struct oval_object *, char *comment);
1247 
1252 void oval_object_set_deprecated(struct oval_object *, bool deprecated);
1261 void oval_object_set_version(struct oval_object *, int version);
1274 void oval_object_add_object_content(struct oval_object *, struct oval_object_content *content);
1287 void oval_object_add_behavior(struct oval_object *, struct oval_behavior *behavior);
1304 const char *oval_object_get_name(struct oval_object *);
1322 char *oval_object_get_comment(struct oval_object *);
1328 char *oval_object_get_id(struct oval_object *);
1329 
1339 int oval_object_get_version(struct oval_object *);
1340 
1344 oval_version_t oval_object_get_schema_version(struct oval_object *object);
1345 
1407 struct oval_state *oval_state_new(struct oval_definition_model *, const char *id);
1413 struct oval_state *oval_state_clone(struct oval_definition_model *new_model, struct oval_state *old_state);
1418 void oval_state_free(struct oval_state *);
1419 
1433 void oval_state_set_subtype(struct oval_state *, oval_subtype_t subtype);
1439 void oval_state_add_note(struct oval_state *, char *note);
1445 void oval_state_set_comment(struct oval_state *, char *comment);
1450 void oval_state_set_deprecated(struct oval_state *, bool deprecated);
1459 void oval_state_set_version(struct oval_state *, int version);
1477 void oval_state_add_content(struct oval_state *, struct oval_state_content *content);
1494 const char *oval_state_get_name(struct oval_state *);
1512 char *oval_state_get_comment(struct oval_state *);
1518 char *oval_state_get_id(struct oval_state *);
1523 bool oval_state_get_deprecated(struct oval_state *);
1528 int oval_state_get_version(struct oval_state *);
1533 int oval_state_get_operator(struct oval_state *);
1594 struct oval_variable *oval_variable_new(struct oval_definition_model *model, const char *id, oval_variable_type_t type);
1600 struct oval_variable *oval_variable_clone(struct oval_definition_model *new_model, struct oval_variable *old_variable);
1605 void oval_variable_free(struct oval_variable *);
1606 
1618 void oval_variable_set_comment(struct oval_variable *, char *comment);
1626 void oval_variable_set_version(struct oval_variable *, int version);
1632 void oval_variable_set_deprecated(struct oval_variable *, bool deprecated);
1654 void oval_variable_add_value(struct oval_variable *, struct oval_value *); //type==OVAL_VARIABLE_CONSTANT
1655 
1656 void oval_variable_clear_values(struct oval_variable *);
1669 void oval_variable_set_component(struct oval_variable *, struct oval_component *component); //type==OVAL_VARIABLE_LOCAL
1681 char *oval_variable_get_id(struct oval_variable *);
1715 struct oval_value_iterator *oval_variable_get_values(struct oval_variable *); //type==OVAL_VARIABLE_CONSTANT
1722 struct oval_component *oval_variable_get_component(struct oval_variable *); //type==OVAL_VARIABLE_LOCAL
1767 struct oval_affected *oval_affected_clone(struct oval_definition_model *new_model, struct oval_affected *old_affected);
1772 void oval_affected_free(struct oval_affected *);
1773 
1787 void oval_affected_add_platform(struct oval_affected *, char *platform_name);
1792 void oval_affected_add_product(struct oval_affected *, char *product_name);
1854 struct oval_reference *oval_reference_new(struct oval_definition_model *);
1860  (struct oval_definition_model *new_model, struct oval_reference *old_reference);
1864 void oval_reference_free(struct oval_reference *);
1865 
1875 void oval_reference_set_source(struct oval_reference *, char *);
1879 void oval_reference_set_id(struct oval_reference *, char *);
1883 void oval_reference_set_url(struct oval_reference *, char *);
1901 char *oval_reference_get_id(struct oval_reference *);
1907 char *oval_reference_get_url(struct oval_reference *);
1917 bool oval_reference_iterator_has_more(struct oval_reference_iterator *);
1921 struct oval_reference *oval_reference_iterator_next(struct oval_reference_iterator *);
1925 void oval_reference_iterator_free(struct oval_reference_iterator *);
1961  (struct oval_definition_model *new_model, struct oval_criteria_node *old_node);
1967 
1977 void oval_criteria_node_set_negate(struct oval_criteria_node *, bool negate);
1983 void oval_criteria_node_set_applicability_check(struct oval_criteria_node *, bool applicability_check);
1995 void oval_criteria_node_set_comment(struct oval_criteria_node *, char *comment);
2030 void oval_criteria_node_set_definition(struct oval_criteria_node *, struct oval_definition *); //type==NODETYPE_EXTENDDEF
2052 
2120 struct oval_object_content *oval_object_content_new(struct oval_definition_model *model, oval_object_content_type_t type);
2121 
2127  (struct oval_definition_model *new_model, struct oval_object_content *old_content);
2128 
2132 void oval_object_content_free(struct oval_object_content *);
2133 
2142 void oval_object_content_set_type(struct oval_object_content *, oval_object_content_type_t);
2146 void oval_object_content_set_field_name(struct oval_object_content *, char *);
2150 void oval_object_content_set_entity(struct oval_object_content *, struct oval_entity *); //type == OVAL_OBJECTCONTENT_ENTITY
2154 void oval_object_content_set_varCheck(struct oval_object_content *, oval_check_t); //type == OVAL_OBJECTCONTENT_ENTITY
2158 void oval_object_content_set_setobject(struct oval_object_content *, struct oval_setobject *); //type == OVAL_OBJECTCONTENT_SET
2181 struct oval_entity *oval_object_content_get_entity(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_ENTITY
2186 oval_check_t oval_object_content_get_varCheck(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_ENTITY
2192 struct oval_setobject *oval_object_content_get_setobject(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_SET
2202 bool oval_object_content_iterator_has_more(struct oval_object_content_iterator *);
2206 struct oval_object_content *oval_object_content_iterator_next(struct oval_object_content_iterator *);
2210 void oval_object_content_iterator_free(struct oval_object_content_iterator *);
2222 struct oval_behavior *oval_behavior_new(struct oval_definition_model *);
2223 
2228 struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior);
2232 void oval_behavior_free(struct oval_behavior *);
2233 
2241 void oval_behavior_set_keyval(struct oval_behavior *behavior, const char *key, const char *value);
2253 char *oval_behavior_get_key(struct oval_behavior *);
2259 char *oval_behavior_get_value(struct oval_behavior *);
2269 bool oval_behavior_iterator_has_more(struct oval_behavior_iterator *);
2273 struct oval_behavior *oval_behavior_iterator_next(struct oval_behavior_iterator *);
2277 void oval_behavior_iterator_free(struct oval_behavior_iterator *);
2289 struct oval_state_content *oval_state_content_new(struct oval_definition_model *);
2294 struct oval_state_content *oval_state_content_clone (struct oval_definition_model *new_model, struct oval_state_content *old_content);
2298 void oval_state_content_free(struct oval_state_content *);
2299 
2307 void oval_state_content_set_entity(struct oval_state_content *, struct oval_entity *);
2311 void oval_state_content_add_record_field(struct oval_state_content *, struct oval_record_field *);
2315 void oval_state_content_set_varcheck(struct oval_state_content *, oval_check_t);
2319 void oval_state_content_set_entcheck(struct oval_state_content *, oval_check_t);
2335 struct oval_record_field_iterator *oval_state_content_get_record_fields(struct oval_state_content *);
2356 bool oval_state_content_iterator_has_more(struct oval_state_content_iterator *);
2360 struct oval_state_content *oval_state_content_iterator_next(struct oval_state_content_iterator *);
2364 void oval_state_content_iterator_free(struct oval_state_content_iterator *);
2370 struct oval_value *oval_value_new(oval_datatype_t datatype, char *text_value);
2375 struct oval_value *oval_value_clone(struct oval_value *old_value);
2379 void oval_value_free(struct oval_value *);
2380 
2388 void oval_value_set_datatype(struct oval_value *, oval_datatype_t);
2389 
2404 char *oval_value_get_text(struct oval_value *);
2409 unsigned char *oval_value_get_binary(struct oval_value *); //datatype==OVAL_DATATYPE_BINARY
2414 bool oval_value_get_boolean(struct oval_value *); //datatype==OVAL_DATATYPE_BOOLEAN
2419 float oval_value_get_float(struct oval_value *); //datatype==OVAL_DATATYPE_FLOAT
2424 long long oval_value_get_integer(struct oval_value *); //datatype==OVAL_DATATYPE_INTEGER
2434 bool oval_value_iterator_has_more(struct oval_value_iterator *);
2438 struct oval_value *oval_value_iterator_next(struct oval_value_iterator *);
2442 int oval_value_iterator_remaining(struct oval_value_iterator *iterator);
2446 void oval_value_iterator_free(struct oval_value_iterator *);
2458 struct oval_entity *oval_entity_new(struct oval_definition_model *);
2463 struct oval_entity *oval_entity_clone(struct oval_definition_model *model, struct oval_entity *old_entity);
2467 void oval_entity_free(struct oval_entity *);
2468 
2476 void oval_entity_set_type(struct oval_entity *, oval_entity_type_t);
2480 void oval_entity_set_datatype(struct oval_entity *, oval_datatype_t);
2484 void oval_entity_set_mask(struct oval_entity *, int);
2488 void oval_entity_set_varref_type(struct oval_entity *, oval_entity_varref_type_t);
2492 void oval_entity_set_variable(struct oval_entity *, struct oval_variable *);
2496 void oval_entity_set_value(struct oval_entity *, struct oval_value *);
2500 void oval_entity_set_name(struct oval_entity *, char *);
2504 void oval_entity_set_operation(struct oval_entity *, oval_operation_t);
2516 char *oval_entity_get_name(struct oval_entity *);
2543 struct oval_value *oval_entity_get_value(struct oval_entity *);
2548 int oval_entity_get_mask(struct oval_entity *);
2563 bool oval_entity_iterator_has_more(struct oval_entity_iterator *);
2567 struct oval_entity *oval_entity_iterator_next(struct oval_entity_iterator *);
2571 void oval_entity_iterator_free(struct oval_entity_iterator *);
2583 struct oval_record_field *oval_record_field_new(oval_record_field_type_t);
2587 struct oval_record_field *oval_record_field_clone(struct oval_record_field *);
2591 void oval_record_field_free(struct oval_record_field *);
2592 
2600 void oval_record_field_set_name(struct oval_record_field *, char *);
2604 void oval_record_field_set_value(struct oval_record_field *, char *);
2608 void oval_record_field_set_datatype(struct oval_record_field *, oval_datatype_t);
2612 void oval_record_field_set_mask(struct oval_record_field *, int);
2616 void oval_record_field_set_operation(struct oval_record_field *, oval_operation_t);
2620 void oval_record_field_set_variable(struct oval_record_field *, struct oval_variable *);
2624 void oval_record_field_set_var_check(struct oval_record_field *, oval_check_t);
2628 void oval_record_field_set_ent_check(struct oval_record_field *, oval_check_t);
2638 oval_record_field_type_t oval_record_field_get_type(struct oval_record_field *);
2642 char *oval_record_field_get_name(struct oval_record_field *);
2646 char *oval_record_field_get_value(struct oval_record_field *);
2650 oval_datatype_t oval_record_field_get_datatype(struct oval_record_field *);
2654 int oval_record_field_get_mask(struct oval_record_field *);
2658 oval_operation_t oval_record_field_get_operation(struct oval_record_field *);
2662 struct oval_variable *oval_record_field_get_variable(struct oval_record_field *);
2666 oval_check_t oval_record_field_get_var_check(struct oval_record_field *);
2670 oval_check_t oval_record_field_get_ent_check(struct oval_record_field *);
2680 bool oval_record_field_iterator_has_more(struct oval_record_field_iterator *);
2684 struct oval_record_field *oval_record_field_iterator_next(struct oval_record_field_iterator *);
2688 void oval_record_field_iterator_free(struct oval_record_field_iterator *);
2700 struct oval_filter *oval_filter_new(struct oval_definition_model *);
2704 void oval_filter_free(struct oval_filter *);
2708 struct oval_filter *oval_filter_clone(struct oval_definition_model *, struct oval_filter *);
2709 
2717 void oval_filter_set_state(struct oval_filter *, struct oval_state *);
2721 void oval_filter_set_filter_action(struct oval_filter *, oval_filter_action_t );
2731 struct oval_state *oval_filter_get_state(struct oval_filter *);
2735 oval_filter_action_t oval_filter_get_filter_action(struct oval_filter *);
2745 bool oval_filter_iterator_has_more(struct oval_filter_iterator *);
2749 struct oval_filter *oval_filter_iterator_next(struct oval_filter_iterator *);
2753 void oval_filter_iterator_free(struct oval_filter_iterator *);
2765 struct oval_setobject *oval_setobject_new(struct oval_definition_model *);
2770 struct oval_setobject *oval_setobject_clone(struct oval_definition_model *new_model, struct oval_setobject *old_setobject);
2774 void oval_setobject_free(struct oval_setobject *);
2775 
2782 void oval_setobject_set_type(struct oval_setobject *, oval_setobject_type_t);
2786 void oval_setobject_set_operation(struct oval_setobject *, oval_setobject_operation_t);
2790 void oval_setobject_add_subset(struct oval_setobject *, struct oval_setobject *); //type==OVAL_SET_AGGREGATE;
2794 void oval_setobject_add_object(struct oval_setobject *, struct oval_object *); //type==OVAL_SET_COLLECTIVE;
2798 void oval_setobject_add_filter(struct oval_setobject *, struct oval_filter *); //type==OVAL_SET_COLLECTIVE;
2822 struct oval_setobject_iterator *oval_setobject_get_subsets(struct oval_setobject *); //type==OVAL_SET_AGGREGATE;
2830 struct oval_object_iterator *oval_setobject_get_objects(struct oval_setobject *); //type==OVAL_SET_COLLECTIVE;
2838 struct oval_filter_iterator *oval_setobject_get_filters(struct oval_setobject *); //type==OVAL_SET_COLLECTIVE;
2848 bool oval_setobject_iterator_has_more(struct oval_setobject_iterator *);
2852 struct oval_setobject *oval_setobject_iterator_next(struct oval_setobject_iterator *);
2856 void oval_setobject_iterator_free(struct oval_setobject_iterator *);
2915  struct oval_component *old_component);
2920 void oval_component_free(struct oval_component *);
2921 
2930 void oval_component_set_type(struct oval_component *component, oval_component_type_t type);
2936 void oval_component_set_object(struct oval_component *, struct oval_object *object);
2941 void oval_component_set_item_field(struct oval_component *, char *);
2946 void oval_component_set_record_field(struct oval_component *, char *);
2952 void oval_component_set_variable(struct oval_component *, struct oval_variable *variable);
2956 void oval_component_add_function_component(struct oval_component *, struct oval_component *); //type==OVAL_COMPONENT_FUNCTION
2960 void oval_component_set_arithmetic_operation(struct oval_component *, oval_arithmetic_operation_t); //type==OVAL_COMPONENT_ARITHMETIC
2964 void oval_component_set_prefix(struct oval_component *, char *); //type==OVAL_COMPONENT_BEGIN
2968 void oval_component_set_suffix(struct oval_component *, char *); //type==OVAL_COMPONENT_END
2972 void oval_component_set_split_delimiter(struct oval_component *, char *); //type==OVAL_COMPONENT_SPLIT
2976 void oval_component_set_substring_start(struct oval_component *, int); //type==OVAL_COMPONENT_SUBSTRING
2980 void oval_component_set_substring_length(struct oval_component *, int); //type==OVAL_COMPONENT_SUBSTRING
2984 void oval_component_set_timedif_format_1(struct oval_component *, oval_datetime_format_t); //type==OVAL_COMPONENT_TIMEDIF
2988 void oval_component_set_timedif_format_2(struct oval_component *, oval_datetime_format_t); //type==OVAL_COMPONENT_TIMEDIF
2992 void oval_component_set_regex_pattern(struct oval_component *, char *); //type==OVAL_COMPONENT_REGEX_CAPTURE
2996 void oval_component_set_literal_value(struct oval_component *, struct oval_value *); //type==OVAL_COMPONENT_LITERAL
3015 struct oval_object *oval_component_get_object(struct oval_component *); //type==OVAL_COMPONENT_OBJECTREF
3045 struct oval_component_iterator *oval_component_get_function_components(struct oval_component *); //type==OVAL_COMPONENT_FUNCTION
3051 oval_arithmetic_operation_t oval_component_get_arithmetic_operation(struct oval_component *); //type==OVAL_COMPONENT_ARITHMETIC
3059 char *oval_component_get_prefix(struct oval_component *); //type==OVAL_COMPONENT_BEGIN
3067 char *oval_component_get_suffix(struct oval_component *); //type==OVAL_COMPONENT_END
3075 char *oval_component_get_split_delimiter(struct oval_component *); //type==OVAL_COMPONENT_SPLIT
3081 int oval_component_get_substring_start(struct oval_component *); //type==OVAL_COMPONENT_SUBSTRING
3087 int oval_component_get_substring_length(struct oval_component *); //type==OVAL_COMPONENT_SUBSTRING
3093 oval_datetime_format_t oval_component_get_timedif_format_1(struct oval_component *); //type==OVAL_COMPONENT_TIMEDIF
3099 oval_datetime_format_t oval_component_get_timedif_format_2(struct oval_component *); //type==OVAL_COMPONENT_TIMEDIF
3107 char *oval_component_get_regex_pattern(struct oval_component *); //type==OVAL_COMPONENT_REGEX_CAPTURE
3115 struct oval_value *oval_component_get_literal_value(struct oval_component *); //type==OVAL_COMPONENT_LITERAL
3187 
3191 #endif