Open SCAP Library
cvrf.h
Go to the documentation of this file.
1 
29 #ifndef _CVRF_H_
30 #define _CVRF_H_
31 
32 #include <stdbool.h>
33 #include "oscap.h"
34 #include "oscap_source.h"
35 #include "cvss_score.h"
36 #include "oscap_export.h"
37 
38 
39 /************************************************************************************************
40  * @struct cvrf_product_status
41  * Structure holding CVRF Status element (within a ProductStatuses container)
42  * Contains a list of ProductIDs and their status with respect to the parent Vulnerability
43  *
44  * PARENT NODE: ProductStatuses container (which is child of Vulnerability)
45  * REQUIRED: Type attribute [max. 1], ProductID(s) [min. 1, max. unbounded]
46  */
47 struct cvrf_product_status;
48 
54 OSCAP_API struct cvrf_product_status *cvrf_product_status_new(void);
55 
61 OSCAP_API void cvrf_product_status_free(struct cvrf_product_status *status);
62 
68 OSCAP_API struct cvrf_product_status *cvrf_product_status_clone(const struct cvrf_product_status *stat);
69 
76 
77 
78 /************************************************************************************************
79  * @struct cvrf_threat
80  * Gives context about the type of Vulnerability and how much threat it poses
81  * Contained within a list representing a Threats container in Vulnerability structure
82  *
83  * PARENT NODE: Threats container (which is child of Vulnerability)
84  * REQUIRED: Type attribute [max 1], Description element [max. 1]
85  * OPTIONAL: ProductID(s) [min. 0, max. unbounded], GroupID(s) [min. 0, max.unbounded]
86  */
87 struct cvrf_threat;
88 
94 OSCAP_API struct cvrf_threat *cvrf_threat_new(void);
95 
101 OSCAP_API void cvrf_threat_free(struct cvrf_threat *threat);
102 
108 OSCAP_API struct cvrf_threat *cvrf_threat_clone(const struct cvrf_threat *threat);
109 
116 OSCAP_API const char *cvrf_threat_get_date(const struct cvrf_threat *threat);
117 
124 OSCAP_API const char *cvrf_threat_get_description(const struct cvrf_threat *threat);
125 
133 OSCAP_API struct oscap_string_iterator *cvrf_threat_get_product_ids(struct cvrf_threat *threat);
134 
142 OSCAP_API struct oscap_string_iterator *cvrf_threat_get_group_ids(struct cvrf_threat *threat);
143 
150 OSCAP_API bool cvrf_threat_set_date(struct cvrf_threat *threat, const char *date);
151 
158 OSCAP_API bool cvrf_threat_set_description(struct cvrf_threat *threat, const char *description);
159 
160 
161 /************************************************************************************************
162  * @struct cvrf_remediation
163  * Structure holding info for handling or fixing a particular Vulnerability
164  *
165  * PARENT NODE: Remediations container (which is child of Vulnerability)
166  * REQUIRED: Type attribute [max: 1], Description element [max: 1]
167  * OPTIONAL: ProductID(s) [min: 0, max: unbounded], GroupID(s) [min: 0, max: unbounded],
168  * Entitlement element [min: 0, max: 1], URL element [min: 0, max: 1]
169  */
170 struct cvrf_remediation;
171 
177 OSCAP_API struct cvrf_remediation *cvrf_remediation_new(void);
178 
184 OSCAP_API void cvrf_remediation_free(struct cvrf_remediation *remed);
185 
191 OSCAP_API struct cvrf_remediation *cvrf_remediation_clone(const struct cvrf_remediation *remed);
192 
199 OSCAP_API const char *cvrf_remediation_get_date(const struct cvrf_remediation *remed);
200 
207 OSCAP_API const char *cvrf_remediation_get_description(const struct cvrf_remediation *remed);
208 
215 OSCAP_API const char *cvrf_remediation_get_url(const struct cvrf_remediation *remed);
216 
223 OSCAP_API const char *cvrf_remediation_get_entitlement(const struct cvrf_remediation *remed);
224 
233 
242 
249 OSCAP_API bool cvrf_remediation_set_date(struct cvrf_remediation *remed, const char *date);
250 
257 OSCAP_API bool cvrf_remediation_set_description(struct cvrf_remediation *remed, const char *description);
258 
265 OSCAP_API bool cvrf_remediation_set_url(struct cvrf_remediation *remed, const char *url);
266 
273 OSCAP_API bool cvrf_remediation_set_entitlement(struct cvrf_remediation *remed, const char *entitlement);
274 
275 
276 /************************************************************************************************
277  * @struct cvrf_score_set
278  * Contains CVSS metrics for a given Vulnerability. No ProductID indicates that it pertains to all
279  * Products in a given CVRF file
280  *
281  * PARENT NODE: CVSSScoreSets container (which is child of Vulnerability)
282  * REQUIRED: BaseScore element [max: 1]
283  * OPTIONAL: TemporalScore element [min: 0, max:1], EnvironmentalScore element [min: 0, max: 1],
284  * ProductID(s) [min: 0, max: unbounded], Vector element [min: 0, max: 1]
285  */
286 struct cvrf_score_set;
287 
293 OSCAP_API struct cvrf_score_set *cvrf_score_set_new(void);
294 
300 OSCAP_API void cvrf_score_set_free(struct cvrf_score_set *score_set);
301 
307 OSCAP_API struct cvrf_score_set *cvrf_score_set_clone(const struct cvrf_score_set *score_set);
308 
315 OSCAP_API const char *cvrf_score_set_get_vector(const struct cvrf_score_set *score_set);
316 
324 OSCAP_API struct oscap_string_iterator *cvrf_score_set_get_product_ids(struct cvrf_score_set *score_set);
325 
331 OSCAP_API struct cvss_impact *cvrf_score_set_get_impact(const struct cvrf_score_set *score_set);
332 
339 OSCAP_API char *cvrf_score_set_get_base_score(const struct cvrf_score_set *score_set);
340 
347 OSCAP_API char *cvrf_score_set_get_environmental_score(const struct cvrf_score_set *score_set);
348 
355 OSCAP_API char *cvrf_score_set_get_temporal_score(const struct cvrf_score_set *score_set);
356 
363 OSCAP_API bool cvrf_score_set_set_vector(struct cvrf_score_set *score_set, const char *vector);
364 
371 OSCAP_API bool cvrf_score_set_set_impact(struct cvrf_score_set *score_set, struct cvss_impact *impact);
372 
380 OSCAP_API bool cvrf_score_set_add_metric(struct cvrf_score_set *score_set, enum cvss_category category, const char *score);
381 
382 
383 /************************************************************************************************
384  * @struct cvrf_involvement
385  * Gives information about the Document Publisher's level of involvement
386  * The 'Party' attribute gives the type of publisher (identical to DocumentPublisher Type)
387  *
388  * PARENT NODE: Involvements container
389  * REQUIRED: Status attribute [max: 1], Party attribute [max: 1]
390  * OPTIONAL: Description element [min: 0, max: 1]
391  */
392 struct cvrf_involvement;
393 
399 OSCAP_API struct cvrf_involvement *cvrf_involvement_new(void);
400 
406 OSCAP_API void cvrf_involvement_free(struct cvrf_involvement *involve);
407 
413 OSCAP_API struct cvrf_involvement *cvrf_involvement_clone(const struct cvrf_involvement *involve);
414 
421 OSCAP_API const char *cvrf_involvement_get_description(const struct cvrf_involvement *involve);
422 
429 OSCAP_API bool cvrf_involvement_set_description(struct cvrf_involvement *involve, const char *description);
430 
431 /************************************************************************************************
432  * @struct cvrf_vulnerability_cwe
433  *
434  * PARENT NODE: Vulnerability
435  * REQUIRED: ID attribute [max: 1], CWE string content [max: 1]
436  */
438 
444 OSCAP_API struct cvrf_vulnerability_cwe *cvrf_vulnerability_cwe_new(void);
445 
451 OSCAP_API void cvrf_vulnerability_cwe_free(struct cvrf_vulnerability_cwe *cwe);
452 
459 
466 OSCAP_API const char *cvrf_vulnerability_cwe_get_cwe(const struct cvrf_vulnerability_cwe *vuln_cwe);
467 
474 OSCAP_API const char *cvrf_vulnerability_cwe_get_id(const struct cvrf_vulnerability_cwe *vuln_cwe);
475 
476 
483 OSCAP_API bool cvrf_vulnerability_cwe_set_cwe(struct cvrf_vulnerability_cwe *vuln_cwe, const char *cwe);
484 
491 OSCAP_API bool cvrf_vulnerability_cwe_set_id(struct cvrf_vulnerability_cwe *vuln_cwe, const char *id);
492 
493 /************************************************************************************************
494  * @struct cvrf_vulnerability
495  * Provides information about Vulnerabilities for products and packages referenced in
496  * ProductTree branches and relationships
497  *
498  * PARENT NODE: cvrfdoc
499  * REQUIRED: Ordinal attribute [max: 1]
500  * OPTIONAL: Title element [min: 0, max:1], ID element [min: 0, max: 1], DiscoveryDate element [min: 0, max: 1],
501  * ReleaseDate element [min: 0, max: 1], Description element [min: 0, max: 1], CVE element [min: 0, max: 1],
502  * CWE ID(s) [min: 0, max: unbounded]
503  *
504  * CONTAINERS: Notes, Involvements, ProductStatuses, Threats, CVSSScoreSets, Remediations,
505  * References, Acknowledgments [min: 0, max: 1 for all containers]
506  */
507 struct cvrf_vulnerability;
508 
514 OSCAP_API struct cvrf_vulnerability *cvrf_vulnerability_new(void);
515 
521 OSCAP_API void cvrf_vulnerability_free(struct cvrf_vulnerability *vulnerability);
522 
528 OSCAP_API struct cvrf_vulnerability *cvrf_vulnerability_clone(const struct cvrf_vulnerability *vuln);
529 
536 OSCAP_API int cvrf_vulnerability_filter_by_product(struct cvrf_vulnerability *vuln, const char *prod);
537 
544 OSCAP_API int cvrf_vulnerability_get_ordinal(const struct cvrf_vulnerability *vuln);
545 
552 OSCAP_API const char *cvrf_vulnerability_get_title(const struct cvrf_vulnerability *vuln);
553 
560 OSCAP_API const char *cvrf_vulnerability_get_system_id(const struct cvrf_vulnerability *vuln);
561 
568 OSCAP_API const char *cvrf_vulnerability_get_system_name(const struct cvrf_vulnerability *vuln);
569 
576 OSCAP_API const char *cvrf_vulnerability_get_discovery_date(const struct cvrf_vulnerability *vuln);
577 
584 OSCAP_API const char *cvrf_vulnerability_get_release_date(const struct cvrf_vulnerability *vuln);
585 
592 OSCAP_API const char *cvrf_vulnerability_get_cve_id(const struct cvrf_vulnerability *vuln);
593 
600 OSCAP_API bool cvrf_vulnerability_set_ordinal(struct cvrf_vulnerability *vuln, int ordinal);
601 
608 OSCAP_API bool cvrf_vulnerability_set_title(struct cvrf_vulnerability *vuln, const char *vulnerability_title);
609 
616 OSCAP_API bool cvrf_vulnerability_set_system_id(struct cvrf_vulnerability *vuln, const char *id);
617 
624 OSCAP_API bool cvrf_vulnerability_set_system_name(struct cvrf_vulnerability *vuln, const char *sys_name);
625 
632 OSCAP_API bool cvrf_vulnerability_set_discovery_date(struct cvrf_vulnerability *vuln, const char *discovery_date);
633 
640 OSCAP_API bool cvrf_vulnerability_set_release_date(struct cvrf_vulnerability *vuln, const char *release_date);
641 
648 OSCAP_API bool cvrf_vulnerability_set_cve_id(struct cvrf_vulnerability *vuln, const char *cve_id);
649 
650 
651 /*-------------------------------------------------------------------------*\
652 | Iterators of child elements of Vulnerability |
653 \*-------------------------------------------------------------------------*/
654 
661 
668 
674 OSCAP_API struct oscap_iterator *cvrf_vulnerability_get_notes(struct cvrf_vulnerability *vuln);
675 
676 /*******************************************
677  * @struct cvrf_vulnerability_cwe_iterator
678  * Iterator representing all CWE elements in the Vulnerability
679  * Contained as a list within the CVRF Vulnerability structure
680  */
681 struct cvrf_vulnerability_cwe_iterator;
682 
689 OSCAP_API bool cvrf_vulnerability_add_cwe(struct cvrf_vulnerability *vuln, struct cvrf_vulnerability_cwe *vulnerability_cwe);
690 
696 OSCAP_API struct cvrf_vulnerability_cwe_iterator *cvrf_vulnerability_get_cwes(const struct cvrf_vulnerability *vuln);
697 
703 OSCAP_API struct cvrf_vulnerability_cwe *cvrf_vulnerability_cwe_iterator_next(struct cvrf_vulnerability_cwe_iterator *it);
704 
710 OSCAP_API bool cvrf_vulnerability_cwe_iterator_has_more(struct cvrf_vulnerability_cwe_iterator *it);
711 
717 OSCAP_API void cvrf_vulnerability_cwe_iterator_free(struct cvrf_vulnerability_cwe_iterator *it);
718 
724 OSCAP_API void cvrf_vulnerability_cwe_iterator_reset(struct cvrf_vulnerability_cwe_iterator *it);
725 
731 OSCAP_API void cvrf_vulnerability_cwe_iterator_remove(struct cvrf_vulnerability_cwe_iterator *it);
732 
733 /*******************************************
734  * @struct cvrf_involvement_iterator
735  * Iterator representing all Involvement elements in the Involvements container
736  * Contained as a list within the CVRF Vulnerability structure
737  */
738 struct cvrf_involvement_iterator;
739 
746 OSCAP_API bool cvrf_vulnerability_add_involvement(struct cvrf_vulnerability *vuln, struct cvrf_involvement *involvement);
747 
753 OSCAP_API struct cvrf_involvement_iterator *cvrf_vulnerability_get_involvements(const struct cvrf_vulnerability *vuln);
754 
760 OSCAP_API struct cvrf_involvement *cvrf_involvement_iterator_next(struct cvrf_involvement_iterator *it);
761 
767 OSCAP_API bool cvrf_involvement_iterator_has_more(struct cvrf_involvement_iterator *it);
768 
774 OSCAP_API void cvrf_involvement_iterator_free(struct cvrf_involvement_iterator *it);
775 
781 OSCAP_API void cvrf_involvement_iterator_reset(struct cvrf_involvement_iterator *it);
782 
788 OSCAP_API void cvrf_involvement_iterator_remove(struct cvrf_involvement_iterator *it);
789 
790 /*******************************************
791  * @struct cvrf_score_set_iterator
792  * Iterator representing all ScoreSet elements in the CVSSScoreSets container
793  * Contained as a list within the CVRF Vulnerability structure
794  */
795 struct cvrf_score_set_iterator;
796 
803 OSCAP_API bool cvrf_vulnerability_add_score_set(struct cvrf_vulnerability *vuln, struct cvrf_score_set *score_set);
804 
810 OSCAP_API struct cvrf_score_set_iterator *cvrf_vulnerability_get_score_sets(const struct cvrf_vulnerability *vuln);
811 
817 OSCAP_API struct cvrf_score_set *cvrf_score_set_iterator_next(struct cvrf_score_set_iterator *it);
818 
824 OSCAP_API bool cvrf_score_set_iterator_has_more(struct cvrf_score_set_iterator *it);
825 
831 OSCAP_API void cvrf_score_set_iterator_free(struct cvrf_score_set_iterator *it);
832 
838 OSCAP_API void cvrf_score_set_iterator_reset(struct cvrf_score_set_iterator *it);
839 
845 OSCAP_API void cvrf_score_set_iterator_remove(struct cvrf_score_set_iterator *it);
846 
847 /*******************************************
848  * @struct cvrf_product_status_iterator
849  * Iterator representing all Status elements in the ProductStatuses container
850  * Contained as a list within the CVRF Vulnerability structure
851  */
852 struct cvrf_product_status_iterator;
853 
861 
867 OSCAP_API struct cvrf_product_status_iterator *cvrf_vulnerability_get_product_statuses(const struct cvrf_vulnerability *vuln);
868 
874 OSCAP_API struct cvrf_product_status *cvrf_product_status_iterator_next(struct cvrf_product_status_iterator *it);
875 
881 OSCAP_API bool cvrf_product_status_iterator_has_more(struct cvrf_product_status_iterator *it);
882 
888 OSCAP_API void cvrf_product_status_iterator_free(struct cvrf_product_status_iterator *it);
889 
895 OSCAP_API void cvrf_product_status_iterator_reset(struct cvrf_product_status_iterator *it);
896 
902 OSCAP_API void cvrf_product_status_iterator_remove(struct cvrf_product_status_iterator *it);
903 
904 /*******************************************
905  * @struct cvrf_remediation_iterator
906  * Iterator representing all Remediation elements in the Remediations container
907  * Contained as a list within the CVRF Vulnerability structure
908  */
909 struct cvrf_remediation_iterator;
910 
917 OSCAP_API bool cvrf_vulnerability_add_remediation(struct cvrf_vulnerability *vuln, struct cvrf_remediation *remed);
918 
924 OSCAP_API struct cvrf_remediation_iterator *cvrf_vulnerability_get_remediations(const struct cvrf_vulnerability *vuln);
925 
931 OSCAP_API struct cvrf_remediation *cvrf_remediation_iterator_next(struct cvrf_remediation_iterator *it);
932 
938 OSCAP_API bool cvrf_remediation_iterator_has_more(struct cvrf_remediation_iterator *it);
939 
945 OSCAP_API void cvrf_remediation_iterator_free(struct cvrf_remediation_iterator *it);
946 
952 OSCAP_API void cvrf_remediation_iterator_reset(struct cvrf_remediation_iterator *it);
953 
959 OSCAP_API void cvrf_remediation_iterator_remove(struct cvrf_remediation_iterator *it);
960 
961 /*******************************************
962  * @struct cvrf_threat_iterator
963  * Iterator representing all Threat elements in the Threats container
964  * Contained as a list within the CVRF Vulnerability structure
965  */
966 struct cvrf_threat_iterator;
967 
974 OSCAP_API bool cvrf_vulnerability_add_threat(struct cvrf_vulnerability *vuln, struct cvrf_threat *threat);
975 
981 OSCAP_API struct cvrf_threat_iterator *cvrf_vulnerability_get_threats(const struct cvrf_vulnerability *vuln);
982 
988 OSCAP_API struct cvrf_threat *cvrf_threat_iterator_next(struct cvrf_threat_iterator *it);
989 
995 OSCAP_API bool cvrf_threat_iterator_has_more(struct cvrf_threat_iterator *it);
996 
1002 OSCAP_API void cvrf_threat_iterator_free(struct cvrf_threat_iterator *it);
1003 
1009 OSCAP_API void cvrf_threat_iterator_reset(struct cvrf_threat_iterator *it);
1010 
1016 OSCAP_API void cvrf_threat_iterator_remove(struct cvrf_threat_iterator *it);
1017 
1018 /************************************************************************************************
1019  * @struct cvrf_product_name
1020  * Represents FullProductName element, which is a child of both Branch and Relationship elements
1021  * Links a CPE to its ProductID or a package ProductID. No two FullProductName elements can
1022  * have the same ProductID
1023  *
1024  * PARENT NODE: ProductTree, Branch, or Relationship
1025  * REQUIRED: ProductID attribute [max: 1], CPE element [max: 1]
1026  */
1027 struct cvrf_product_name;
1028 
1034 OSCAP_API struct cvrf_product_name *cvrf_product_name_new(void);
1035 
1041 OSCAP_API void cvrf_product_name_free(struct cvrf_product_name *full_name);
1042 
1048 OSCAP_API struct cvrf_product_name *cvrf_product_name_clone(const struct cvrf_product_name *full_name);
1049 
1056 OSCAP_API const char *cvrf_product_name_get_product_id(const struct cvrf_product_name *full_name);
1057 
1064 OSCAP_API const char *cvrf_product_name_get_cpe(const struct cvrf_product_name *full_name);
1065 
1072 OSCAP_API bool cvrf_product_name_set_product_id(struct cvrf_product_name *full_name, const char *product_id);
1073 
1080 OSCAP_API bool cvrf_product_name_set_cpe(struct cvrf_product_name *full_name, const char *cpe);
1081 
1082 /************************************************************************************************
1083  * @struct cvrf_group
1084  * Structure that categorically groups different products referenced in the document.
1085  * One ProductID is used per group member. The GroupID can be used as a reference for
1086  * other elements.
1087  *
1088  * PARENT NODE: ProductGroups container (which is a child of ProductTree)
1089  * REQUIRED: GroupID attribute [max: 1], ProductID element [min:2, max: unbounded]
1090  * OPTIONAL: Description element [min: 0, max: 1]
1091  */
1092 struct cvrf_group;
1093 
1099 OSCAP_API struct cvrf_group *cvrf_group_new(void);
1100 
1106 OSCAP_API void cvrf_group_free(struct cvrf_group *group);
1107 
1113 OSCAP_API struct cvrf_group *cvrf_group_clone(const struct cvrf_group *group);
1114 
1121 OSCAP_API const char *cvrf_group_get_group_id(const struct cvrf_group *group);
1122 
1129 OSCAP_API const char *cvrf_group_get_description(const struct cvrf_group *group);
1130 
1137 OSCAP_API bool cvrf_group_set_group_id(struct cvrf_group *group, const char *group_id);
1138 
1145 OSCAP_API bool cvrf_group_set_description(struct cvrf_group *group, const char *description);
1146 
1153 OSCAP_API struct oscap_string_iterator *cvrf_group_get_product_ids(struct cvrf_group *group);
1154 
1155 
1156 /************************************************************************************************
1157  * @struct cvrf_relationship
1158  * Structure within a parent ProductTree. Establishes a link between two products (FullProductNames)
1159  * referenced in the document. Thus, at least two FullProductName elements must exist in the document.
1160  *
1161  * PARENT NODE: ProductTree
1162  * REQUIRED: ProductReference attribute [max: 1], RelationType attribute [max: 1],
1163  * RelatesToProductReference attribute [max: 1], FullProductName element [max: 1]
1164  */
1165 struct cvrf_relationship;
1166 
1172 OSCAP_API struct cvrf_relationship *cvrf_relationship_new(void);
1173 
1179 OSCAP_API void cvrf_relationship_free(struct cvrf_relationship *relationship);
1180 
1186 OSCAP_API struct cvrf_relationship *cvrf_relationship_clone(const struct cvrf_relationship *relation);
1187 
1194 OSCAP_API const char *cvrf_relationship_get_product_reference(const struct cvrf_relationship *relation);
1195 
1202 OSCAP_API const char *cvrf_relationship_get_relates_to_ref(const struct cvrf_relationship *relation);
1203 
1210 OSCAP_API struct cvrf_product_name *cvrf_relationship_get_product_name(const struct cvrf_relationship *relation);
1211 
1218 OSCAP_API bool cvrf_relationship_set_product_reference(struct cvrf_relationship *relation, const char *product_reference);
1219 
1226 OSCAP_API bool cvrf_relationship_set_relates_to_ref(struct cvrf_relationship *relation, const char *relates_to_ref);
1227 
1234 OSCAP_API bool cvrf_relationship_set_product_name(struct cvrf_relationship *relation, struct cvrf_product_name *name);
1235 
1236 /************************************************************************************************
1237  * @struct cvrf_branch
1238  * Establishes hierarchy and relationships between different CPEs, products, and packages
1239  * Can only have one type of child element: a FullProductName or more Branches
1240  *
1241  * PARENT NODE: ProductTree or Branch
1242  * REQUIRED: Name attribute [max: 1], Type attribute [max: 1], EITHER FullProductName element [max: 1] OR
1243  * child Branch elements [min: 1, max: unbounded]
1244  */
1245 struct cvrf_branch;
1246 
1252 OSCAP_API struct cvrf_branch *cvrf_branch_new(void);
1253 
1259 OSCAP_API void cvrf_branch_free(struct cvrf_branch *branch);
1260 
1266 OSCAP_API struct cvrf_branch *cvrf_branch_clone(const struct cvrf_branch *branch);
1267 
1274 OSCAP_API const char *cvrf_branch_get_branch_name(const struct cvrf_branch *branch);
1275 
1282 OSCAP_API struct cvrf_product_name *cvrf_branch_get_product_name(const struct cvrf_branch *branch);
1283 
1290 OSCAP_API struct oscap_iterator *cvrf_branch_get_subbranches(struct cvrf_branch *branch);
1291 
1298 OSCAP_API bool cvrf_branch_set_branch_name(struct cvrf_branch *branch, const char *branch_name);
1299 
1306 OSCAP_API bool cvrf_branch_set_product_name(struct cvrf_branch *branch, struct cvrf_product_name *name);
1307 
1308 /************************************************************************************************
1309  *@struct cvrf_product_tree
1310  * Relates information about CPEs, their given ProductIDs, packages and their given ProductIDs through
1311  * Branch and Relationship child elements
1312  *
1313  * PARENT NODE: cvrfdoc
1314  * OPTIONAL: FullProductName element [min: 0, max: unbounded], Branch element [min: 0, max: unbounded],
1315  * Relationship element [min: 0, max: unbounded]
1316  */
1317 struct cvrf_product_tree;
1318 
1324 OSCAP_API struct cvrf_product_tree *cvrf_product_tree_new(void);
1325 
1332 OSCAP_API void cvrf_product_tree_free(struct cvrf_product_tree *tree);
1333 
1339 OSCAP_API struct cvrf_product_tree *cvrf_product_tree_clone(const struct cvrf_product_tree *tree);
1340 
1350 OSCAP_API const char *get_cvrf_product_id_from_cpe(struct cvrf_product_tree *tree, const char *cpe);
1351 
1360 OSCAP_API int cvrf_product_tree_filter_by_cpe(struct cvrf_product_tree *tree, const char *cpe);
1361 
1362 /*---------------------------------------------------------------------*\
1363 | Iterators of child elements of ProductTree |
1364 \*---------------------------------------------------------------------*/
1365 
1366 OSCAP_API struct oscap_iterator *cvrf_product_tree_get_branches(struct cvrf_product_tree *tree);
1367 
1368 /*******************************************
1369  * @struct cvrf_product_name_iterator
1370  * Iterator representing all FullProductName elements in the ProductTree
1371  * Contained as a list within the CVRF ProductTree structure
1372  */
1373 struct cvrf_product_name_iterator;
1374 
1381 OSCAP_API bool cvrf_product_tree_add_product_name(struct cvrf_product_tree *tree, struct cvrf_product_name *full_name);
1382 
1388 OSCAP_API struct cvrf_product_name_iterator *cvrf_product_tree_get_product_names(const struct cvrf_product_tree *tree);
1389 
1395 OSCAP_API struct cvrf_product_name *cvrf_product_name_iterator_next(struct cvrf_product_name_iterator *it);
1396 
1402 OSCAP_API bool cvrf_product_name_iterator_has_more(struct cvrf_product_name_iterator *it);
1403 
1409 OSCAP_API void cvrf_product_name_iterator_free(struct cvrf_product_name_iterator *it);
1410 
1416 OSCAP_API void cvrf_product_name_iterator_reset(struct cvrf_product_name_iterator *it);
1417 
1423 OSCAP_API void cvrf_product_name_iterator_remove(struct cvrf_product_name_iterator *it);
1424 
1425 /*******************************************
1426  * @struct cvrf_relationship_iterator
1427  * Iterator representing all Relationship elements in the ProductTree
1428  * Contained as a list within the CVRF Relationship structure
1429  */
1430 struct cvrf_relationship_iterator;
1431 
1438 OSCAP_API bool cvrf_product_tree_add_relationship(struct cvrf_product_tree *tree, struct cvrf_relationship *relation);
1439 
1445 OSCAP_API struct cvrf_relationship_iterator *cvrf_product_tree_get_relationships(const struct cvrf_product_tree *tree);
1446 
1452 OSCAP_API struct cvrf_relationship *cvrf_relationship_iterator_next(struct cvrf_relationship_iterator *it);
1453 
1459 OSCAP_API bool cvrf_relationship_iterator_has_more(struct cvrf_relationship_iterator *it);
1460 
1466 OSCAP_API void cvrf_relationship_iterator_free(struct cvrf_relationship_iterator *it);
1467 
1473 OSCAP_API void cvrf_relationship_iterator_reset(struct cvrf_relationship_iterator *it);
1474 
1480 OSCAP_API void cvrf_relationship_iterator_remove(struct cvrf_relationship_iterator *it);
1481 
1482 
1483 /*******************************************
1484  * @struct cvrf_group_iterator
1485  * Iterator representing all Group elements in the ProductTree
1486  * Contained as a list within the CVRF ProductTree structure
1487  */
1488 struct cvrf_group_iterator;
1489 
1496 OSCAP_API bool cvrf_product_tree_add_group(struct cvrf_product_tree *tree, struct cvrf_group *group);
1497 
1503 OSCAP_API struct cvrf_group_iterator *cvrf_product_tree_get_product_groups(const struct cvrf_product_tree *tree);
1504 
1510 OSCAP_API struct cvrf_group *cvrf_group_iterator_next(struct cvrf_group_iterator *it);
1511 
1517 OSCAP_API bool cvrf_group_iterator_has_more(struct cvrf_group_iterator *it);
1518 
1524 OSCAP_API void cvrf_group_iterator_free(struct cvrf_group_iterator *it);
1525 
1531 OSCAP_API void cvrf_group_iterator_reset(struct cvrf_group_iterator *it);
1532 
1538 OSCAP_API void cvrf_group_iterator_remove(struct cvrf_group_iterator *it);
1539 
1540 
1541 /************************************************************************************************
1542  * @struct cvrf_acknowledgment
1543  * Metadata giving recognition of external parties who provided information, suggestions, or
1544  * other contributions
1545  *
1546  * PARENT NODE: Acknowledgments container (in cvrfdoc or in Vulnerability)
1547  * OPTIONAL: Name element(s) [min: 0, max: unbounded], Organization(s) element [min: 0, max: unbounded],
1548  * Description element [min: 0, max: 1], URL element(s) [min: 0, max: unbounded]
1549  */
1550 struct cvrf_acknowledgment;
1551 
1557 OSCAP_API struct cvrf_acknowledgment *cvrf_acknowledgment_new(void);
1558 
1564 OSCAP_API void cvrf_acknowledgment_free(struct cvrf_acknowledgment *ack);
1565 
1571 OSCAP_API struct cvrf_acknowledgment *cvrf_acknowledgment_clone(const struct cvrf_acknowledgment *ack);
1572 
1579 OSCAP_API const char *cvrf_acknowledgment_get_description(const struct cvrf_acknowledgment *ack);
1580 
1587 OSCAP_API bool cvrf_acknowledgment_set_description(struct cvrf_acknowledgment *ack, const char *description);
1588 
1595 OSCAP_API struct oscap_string_iterator *cvrf_acknowledgment_get_names(const struct cvrf_acknowledgment *ack);
1596 
1604 
1611 OSCAP_API struct oscap_string_iterator *cvrf_acknowledgment_get_urls(const struct cvrf_acknowledgment *ack);
1612 
1613 /************************************************************************************************
1614  * @struct cvrf_note
1615  *
1616  * PARENT NODE: DocumentNotes container or Notes container
1617  * REQUIRED: Type attribute [min: 1, max: 1], Ordinal attribute [min: 1, max: 1],
1618  * OPTIONAL: Audience attribute [min: 0, max: 1], Title attribute [min: 0, max: 1]
1619  */
1620 struct cvrf_note;
1621 
1627 OSCAP_API struct cvrf_note *cvrf_note_new(void);
1628 
1634 OSCAP_API void cvrf_note_free(struct cvrf_note *note);
1635 
1641 OSCAP_API struct cvrf_note *cvrf_note_clone(const struct cvrf_note *note);
1642 
1649 OSCAP_API int cvrf_note_get_ordinal(const struct cvrf_note *note);
1650 
1657 OSCAP_API const char *cvrf_note_get_audience(const struct cvrf_note *note);
1658 
1665 OSCAP_API const char *cvrf_note_get_title(const struct cvrf_note *note);
1666 
1673 OSCAP_API const char *cvrf_note_get_contents(const struct cvrf_note *note);
1674 
1681 OSCAP_API bool cvrf_note_set_ordinal(struct cvrf_note *note, int ordinal);
1682 
1689 OSCAP_API bool cvrf_note_set_audience(struct cvrf_note *note, const char *audience);
1690 
1697 OSCAP_API bool cvrf_note_set_title(struct cvrf_note *note, const char *title);
1698 
1705 OSCAP_API bool cvrf_note_set_contents(struct cvrf_note *note, const char *contents);
1706 
1707 
1708 /************************************************************************************************
1709  * @struct cvrf_revision
1710  * Metadata for tracking the changes made to a CVRF document
1711  *
1712  * PARENT NODE: RevisionHistory container (which is a child of DocumentTracking)
1713  * REQUIRED: Number element [min: 1, max: 1], Date element [min: 1, max: 1],
1714  * Description element [min: 1, max: 1]
1715  */
1716 struct cvrf_revision;
1717 
1723 OSCAP_API struct cvrf_revision *cvrf_revision_new(void);
1724 
1730 OSCAP_API void cvrf_revision_free(struct cvrf_revision *revision);
1731 
1737 OSCAP_API struct cvrf_revision *cvrf_revision_clone(const struct cvrf_revision *revision);
1738 
1745 OSCAP_API const char *cvrf_revision_get_number(const struct cvrf_revision *revision);
1746 
1753 OSCAP_API const char *cvrf_revision_get_date(const struct cvrf_revision *revision);
1754 
1761 OSCAP_API const char *cvrf_revision_get_description(const struct cvrf_revision *revision);
1762 
1769 OSCAP_API bool cvrf_revision_set_number(struct cvrf_revision *revision, const char *number);
1770 
1777 OSCAP_API bool cvrf_revision_set_date(struct cvrf_revision *revision, const char *date);
1778 
1785 OSCAP_API bool cvrf_revision_set_description(struct cvrf_revision *revision, const char *description);
1786 
1787 /************************************************************************************************
1788  * @struct cvrf_doc_tracking
1789  * Metadata for referencing origin, changes, release dates, IDs, and other information about
1790  * the document
1791  *
1792  * PARENT NODE: cvrfdoc
1793  * REQUIRED: Identification container [max: 1] { ID element [max: 1], Alias [min: 0, max: unbounded] },
1794  * Status element [max: 1], Version element [max: 1], RevisionHistory container [max: 1],
1795  * InitialReleaseDate [max: 1], CurrentReleaseDate [max: 1],
1796  * Generator container [max: 1] { Engine [min: 0, max: 1], Date [min: 0, max: 1] }
1797  */
1798 struct cvrf_doc_tracking;
1799 
1805 OSCAP_API struct cvrf_doc_tracking *cvrf_doc_tracking_new(void);
1806 
1812 OSCAP_API void cvrf_doc_tracking_free(struct cvrf_doc_tracking *tracking);
1813 
1819 OSCAP_API struct cvrf_doc_tracking *cvrf_doc_tracking_clone(const struct cvrf_doc_tracking *tracking);
1820 
1827 OSCAP_API const char *cvrf_doc_tracking_get_tracking_id(const struct cvrf_doc_tracking *tracking);
1828 
1835 OSCAP_API struct oscap_string_iterator *cvrf_doc_tracking_get_aliases(struct cvrf_doc_tracking *tracking);
1836 
1843 OSCAP_API const char *cvrf_doc_tracking_get_version(const struct cvrf_doc_tracking *tracking);
1844 
1851 OSCAP_API const char *cvrf_doc_tracking_get_init_release_date(const struct cvrf_doc_tracking *tracking);
1852 
1859 OSCAP_API const char *cvrf_doc_tracking_get_cur_release_date(const struct cvrf_doc_tracking *tracking);
1860 
1867 OSCAP_API const char *cvrf_doc_tracking_get_generator_engine(const struct cvrf_doc_tracking *tracking);
1868 
1875 OSCAP_API const char *cvrf_doc_tracking_get_generator_date(const struct cvrf_doc_tracking *tracking);
1876 
1883 OSCAP_API bool cvrf_doc_tracking_set_tracking_id(struct cvrf_doc_tracking *tracking, const char *id);
1884 
1891 OSCAP_API bool cvrf_doc_tracking_set_version(struct cvrf_doc_tracking *tracking, const char *version);
1892 
1899 OSCAP_API bool cvrf_doc_tracking_set_init_release_date(struct cvrf_doc_tracking *tracking, const char *init_release_date);
1900 
1907 OSCAP_API bool cvrf_doc_tracking_set_cur_release_date(struct cvrf_doc_tracking *tracking, const char *cur_release_date);
1908 
1915 OSCAP_API bool cvrf_doc_tracking_set_generator_engine(struct cvrf_doc_tracking *tracking, const char *generator_engine);
1916 
1923 OSCAP_API bool cvrf_doc_tracking_set_generator_date(struct cvrf_doc_tracking *tracking, const char *generator_date);
1924 
1925 
1926 /*******************************************
1927  * @struct cvrf_revision_iterator
1928  * Iterator representing all Revision elements in the RevisionHistory container
1929  * Contained as a list within the CVRF DocumentTracking structure
1930  */
1931 struct cvrf_revision_iterator;
1932 
1939 OSCAP_API bool cvrf_doc_tracking_add_revision(struct cvrf_doc_tracking *tracking, struct cvrf_revision *revision);
1940 
1946 OSCAP_API struct cvrf_revision_iterator *cvrf_doc_tracking_get_revision_history(const struct cvrf_doc_tracking *tracking);
1947 
1953 OSCAP_API struct cvrf_revision *cvrf_revision_iterator_next(struct cvrf_revision_iterator *it);
1954 
1960 OSCAP_API bool cvrf_revision_iterator_has_more(struct cvrf_revision_iterator *it);
1961 
1967 OSCAP_API void cvrf_revision_iterator_free(struct cvrf_revision_iterator *it);
1968 
1974 OSCAP_API void cvrf_revision_iterator_reset(struct cvrf_revision_iterator *it);
1975 
1981 OSCAP_API void cvrf_revision_iterator_remove(struct cvrf_revision_iterator *it);
1982 
1983 
1984 /************************************************************************************************
1985  * @struct cvrf_doc_publisher
1986  * Metadata about the publisher of the CVRF document
1987  *
1988  * PARENT NODE: cvrfdoc
1989  * REQUIRED: Type attribute [max: 1]
1990  * OPTIONAL: VendorID attribute [min: 0, max: 1], ContactDetails element [min: 0, max: 1],
1991  * IssuingAuthority element [min: 0, max: 1]
1992  */
1993 struct cvrf_doc_publisher;
1994 
2000 OSCAP_API struct cvrf_doc_publisher *cvrf_doc_publisher_new(void);
2001 
2007 OSCAP_API void cvrf_doc_publisher_free(struct cvrf_doc_publisher *publisher);
2008 
2014 OSCAP_API struct cvrf_doc_publisher *cvrf_doc_publisher_clone(const struct cvrf_doc_publisher *publisher);
2015 
2022 OSCAP_API const char *cvrf_doc_publisher_get_vendor_id(const struct cvrf_doc_publisher *publisher);
2023 
2030 OSCAP_API const char *cvrf_doc_publisher_get_contact_details(const struct cvrf_doc_publisher *publisher);
2031 
2038 OSCAP_API const char *cvrf_doc_publisher_get_issuing_authority(const struct cvrf_doc_publisher *publisher);
2039 
2046 OSCAP_API bool cvrf_doc_publisher_set_vendor_id(struct cvrf_doc_publisher *publisher, const char *vendor_id);
2047 
2054 OSCAP_API bool cvrf_doc_publisher_set_contact_details(struct cvrf_doc_publisher *publisher, const char *contact_details);
2055 
2062 OSCAP_API bool cvrf_doc_publisher_set_issuing_authority(struct cvrf_doc_publisher *publisher, const char *issuing_authority);
2063 
2064 /************************************************************************************************
2065  * @struct cvrf_reference
2066  * Refers to resources and information outside of the CVRF document itself
2067  *
2068  * PARENT NODE: DocumentReferences container (child of cvrfdoc) or References container (child of Vulnerability)
2069  * REQUIRED: Type attribute [max: 1], URL element [max: 1], Description element [max: 1]
2070  */
2071 struct cvrf_reference;
2072 
2078 OSCAP_API struct cvrf_reference *cvrf_reference_new(void);
2079 
2085 OSCAP_API void cvrf_reference_free(struct cvrf_reference *reference);
2086 
2092 OSCAP_API struct cvrf_reference *cvrf_reference_clone(const struct cvrf_reference *ref);
2093 
2100 OSCAP_API const char *cvrf_reference_get_url(const struct cvrf_reference *reference);
2101 
2108 OSCAP_API const char *cvrf_reference_get_description(const struct cvrf_reference *reference);
2109 
2116 OSCAP_API bool cvrf_reference_set_url(struct cvrf_reference *reference, const char *url);
2117 
2124 OSCAP_API bool cvrf_reference_set_description(struct cvrf_reference *reference, const char *description);
2125 
2126 /************************************************************************************************
2127  * @struct cvrf_document
2128  *
2129  */
2130 struct cvrf_document;
2131 
2137 OSCAP_API struct cvrf_document *cvrf_document_new(void);
2138 
2145 OSCAP_API void cvrf_document_free(struct cvrf_document *doc);
2146 
2152 OSCAP_API struct cvrf_document *cvrf_document_clone(const struct cvrf_document *doc);
2153 
2160 OSCAP_API const char *cvrf_document_get_doc_distribution(const struct cvrf_document *doc);
2161 
2168 OSCAP_API const char *cvrf_document_get_aggregate_severity(const struct cvrf_document *doc);
2169 
2176 OSCAP_API const char *cvrf_document_get_namespace(const struct cvrf_document *doc);
2177 
2184 OSCAP_API struct cvrf_doc_tracking *cvrf_document_get_tracking(const struct cvrf_document *doc);
2185 
2192 OSCAP_API struct cvrf_doc_publisher *cvrf_document_get_publisher(const struct cvrf_document *doc);
2193 
2200 OSCAP_API struct oscap_iterator *cvrf_document_get_notes(struct cvrf_document *doc);
2201 
2208 OSCAP_API struct oscap_iterator *cvrf_document_get_references(struct cvrf_document *doc);
2209 
2216 OSCAP_API struct oscap_iterator *cvrf_document_get_acknowledgments(struct cvrf_document *doc);
2217 
2224 OSCAP_API bool cvrf_document_set_doc_distribution(struct cvrf_document *doc, const char *distribution);
2225 
2232 OSCAP_API bool cvrf_document_set_aggregate_severity(struct cvrf_document *doc, const char *severity);
2233 
2240 OSCAP_API bool cvrf_document_set_namespace(struct cvrf_document *doc, const char *ns);
2241 
2248 OSCAP_API bool cvrf_document_set_publisher(struct cvrf_document *doc, struct cvrf_doc_publisher *publisher);
2249 
2256 OSCAP_API bool cvrf_document_set_tracking(struct cvrf_document *doc, struct cvrf_doc_tracking *track);
2257 
2258 /************************************************************************************************
2259  * @struct cvrf_model
2260  * Top level structure; organizationally divided into 3 components: Document, ProductTree, and
2261  * Vulnerability offshoots. This structure contains all information provided by a CVRF file.
2262  *
2263  * REQUIRED: DocumentTitle element [max: 1], DocumentType element [max: 1]
2264  * OPTIONAL: ProductTree element [min: 0, max: 1], Vulnerability [min: 0, max: unbounded]
2265  */
2266 struct cvrf_model;
2267 
2273 OSCAP_API struct cvrf_model *cvrf_model_new(void);
2274 
2280 OSCAP_API void cvrf_model_free(struct cvrf_model *cvrf);
2281 
2287 OSCAP_API struct cvrf_model *cvrf_model_clone(const struct cvrf_model *model);
2288 
2297 OSCAP_API int cvrf_model_filter_by_cpe(struct cvrf_model *model, const char *cpe);
2298 
2305 OSCAP_API const char *cvrf_model_get_doc_title(const struct cvrf_model *model);
2306 
2313 OSCAP_API const char *cvrf_model_get_doc_type(const struct cvrf_model *model);
2314 
2321 OSCAP_API bool cvrf_model_set_doc_title(struct cvrf_model *model, const char *doc_title);
2322 
2329 OSCAP_API bool cvrf_model_set_doc_type(struct cvrf_model *model, const char *doc_type);
2330 
2337 OSCAP_API struct cvrf_product_tree *cvrf_model_get_product_tree(struct cvrf_model *model);
2338 
2346 OSCAP_API struct cvrf_document *cvrf_model_get_document(const struct cvrf_model *model);
2347 
2353 OSCAP_API const char *cvrf_model_get_identification(struct cvrf_model *model);
2354 
2361 OSCAP_API bool cvrf_model_set_document(struct cvrf_model *model, struct cvrf_document *doc);
2362 
2363 /*******************************************
2364  * @struct cvrf_vulnerability_iterator
2365  * Iterator representing all Vulnerabilities in the document
2366  * Contained as a list within the CVRF Model structure
2367  */
2368 struct cvrf_vulnerability_iterator;
2369 
2375 OSCAP_API struct cvrf_vulnerability_iterator *cvrf_model_get_vulnerabilities(const struct cvrf_model *model);
2376 
2383 OSCAP_API bool cvrf_model_add_vulnerability(struct cvrf_model *model, struct cvrf_vulnerability *vuln);
2384 
2390 OSCAP_API struct cvrf_vulnerability *cvrf_vulnerability_iterator_next(struct cvrf_vulnerability_iterator *it);
2391 
2397 OSCAP_API bool cvrf_vulnerability_iterator_has_more(struct cvrf_vulnerability_iterator *it);
2398 
2404 OSCAP_API void cvrf_vulnerability_iterator_free(struct cvrf_vulnerability_iterator *it);
2405 
2411 OSCAP_API void cvrf_vulnerability_iterator_reset(struct cvrf_vulnerability_iterator *it);
2412 
2418 OSCAP_API void cvrf_vulnerability_iterator_remove(struct cvrf_vulnerability_iterator *it);
2419 
2420 
2421 /************************************************************************************************
2422  * @struct cvrf_index
2423  * Represents an index of a CVRF feed or directory
2424  * Maintains a list of all CVRF files in the form of cvrf_model structures
2425  */
2426 struct cvrf_index;
2427 
2433 OSCAP_API struct cvrf_index *cvrf_index_new(void);
2434 
2440 OSCAP_API void cvrf_index_free(struct cvrf_index *index);
2441 
2447 OSCAP_API struct cvrf_index *cvrf_index_clone(const struct cvrf_index *index);
2448 
2455 OSCAP_API const char *cvrf_index_get_source_url(const struct cvrf_index *index);
2456 
2463 OSCAP_API const char *cvrf_index_get_index_file(const struct cvrf_index *index);
2464 
2471 OSCAP_API bool cvrf_index_set_source_url(struct cvrf_index *index, const char *url);
2472 
2479 OSCAP_API bool cvrf_index_set_index_file(struct cvrf_index *index, const char *index_file);
2480 
2481 /*******************************************
2482  * @struct cvrf_model_iterator
2483  * Iterator representing all CVRF files from an index, feed, or stream
2484  * Contained as a list within the CVRF Index structure
2485  */
2486 struct cvrf_model_iterator;
2487 
2494 OSCAP_API bool cvrf_index_add_model(struct cvrf_index *index, struct cvrf_model *model);
2495 
2501 OSCAP_API struct cvrf_model_iterator *cvrf_index_get_models(const struct cvrf_index *index);
2502 
2508 OSCAP_API struct cvrf_model *cvrf_model_iterator_next(struct cvrf_model_iterator *it);
2509 
2515 OSCAP_API bool cvrf_model_iterator_has_more(struct cvrf_model_iterator *it);
2516 
2522 OSCAP_API void cvrf_model_iterator_free(struct cvrf_model_iterator *it);
2523 
2529 OSCAP_API void cvrf_model_iterator_reset(struct cvrf_model_iterator *it);
2530 
2536 OSCAP_API void cvrf_model_iterator_remove(struct cvrf_model_iterator *it);
2537 
2538 
2539 /************************************************************************************************
2540  * @struct cvrf_session
2541  * Structure that holds and processes import source and import for CVRF models or indices
2542  * for later use during evaluation. Has OVAL definition structure that is used for
2543  * evaluation
2544  */
2545 struct cvrf_session;
2546 
2552 OSCAP_API struct cvrf_session *cvrf_session_new_from_source_model(struct oscap_source *source);
2553 
2559 OSCAP_API struct cvrf_session *cvrf_session_new_from_source_index(struct oscap_source *source);
2560 
2566 OSCAP_API void cvrf_session_free(struct cvrf_session *session);
2567 
2573 OSCAP_API struct cvrf_model *cvrf_session_get_model(struct cvrf_session *session);
2574 
2580 OSCAP_API struct cvrf_index *cvrf_session_get_index(const struct cvrf_session *session);
2581 
2589 OSCAP_API struct oscap_string_iterator *cvrf_session_get_product_ids(struct cvrf_session *session);
2590 
2596 OSCAP_API const char *cvrf_session_get_os_name(const struct cvrf_session *session);
2597 
2604 OSCAP_API void cvrf_session_set_model(struct cvrf_session *session, struct cvrf_model *model);
2605 
2613 OSCAP_API bool cvrf_session_set_index(struct cvrf_session *session, struct cvrf_index *index);
2614 
2622 OSCAP_API bool cvrf_session_set_os_name(struct cvrf_session *session, const char *os_name);
2623 
2624 /************************************************************************************************
2625  * @struct cvrf_rpm_attributes
2626  * Stores dissected information about RPM package names from CVRF files- the EVR format and
2627  * package name. These are used to check the vulnerability of the system by comparing the
2628  * EVR in the CVRF file to the EVR on the system
2629  */
2630 struct cvrf_rpm_attributes;
2631 
2637 OSCAP_API struct cvrf_rpm_attributes *cvrf_rpm_attributes_new(void);
2638 
2644 OSCAP_API void cvrf_rpm_attributes_free(struct cvrf_rpm_attributes *attributes);
2645 
2651 OSCAP_API const char *cvrf_rpm_attributes_get_full_package_name(const struct cvrf_rpm_attributes *attributes);
2652 
2659 OSCAP_API const char *cvrf_rpm_attributes_get_rpm_name(const struct cvrf_rpm_attributes *attributes);
2660 
2668 OSCAP_API const char *cvrf_rpm_attributes_get_evr_format(const struct cvrf_rpm_attributes *attributes);
2669 
2676 OSCAP_API bool cvrf_rpm_attributes_set_full_package_name(struct cvrf_rpm_attributes *attributes, const char *full_package);
2677 
2684 OSCAP_API bool cvrf_rpm_attributes_set_rpm_name(struct cvrf_rpm_attributes *attributes, const char *rpm_name);
2685 
2692 OSCAP_API bool cvrf_rpm_attributes_set_evr_format(struct cvrf_rpm_attributes *attributes, const char *evr_format);
2693 
2694 
2695 /************************************************************************************************/
2696 /************************************************************************************************/
2697 
2698 
2704 OSCAP_API const char * cvrf_model_supported(void);
2705 
2713 OSCAP_API struct cvrf_index *cvrf_index_import(struct oscap_source *index_source);
2714 
2721 OSCAP_API struct cvrf_model *cvrf_model_import(struct oscap_source *source);
2722 
2729 OSCAP_API struct oscap_source *cvrf_index_get_export_source(struct cvrf_index *index);
2730 
2737 OSCAP_API struct oscap_source *cvrf_model_get_export_source(struct cvrf_model *model);
2738 
2747 OSCAP_API struct oscap_source *cvrf_model_get_results_source(struct oscap_source *import_source, const char *os_name);
2748 
2757 OSCAP_API struct oscap_source *cvrf_index_get_results_source(struct oscap_source *import_source, const char *os_name);
2758 
2759 
2762 #endif /* _CVRF_H_ */
cvrf_vulnerability::cvrf_vulnerability_set_release_date
OSCAP_API bool cvrf_vulnerability_set_release_date(struct cvrf_vulnerability *vuln, const char *release_date)
cvrf_acknowledgment::cvrf_acknowledgment_set_description
OSCAP_API bool cvrf_acknowledgment_set_description(struct cvrf_acknowledgment *ack, const char *description)
cvrf_remediation::cvrf_remediation_get_url
const OSCAP_API char * cvrf_remediation_get_url(const struct cvrf_remediation *remed)
cvrf_relationship::cvrf_relationship_new
OSCAP_API struct cvrf_relationship * cvrf_relationship_new(void)
New CVRF Relationship element within ProductTree.
Definition: cvrf_priv.c:650
cvrf_note::cvrf_note_get_audience
const OSCAP_API char * cvrf_note_get_audience(const struct cvrf_note *note)
cvrf_doc_tracking::cvrf_doc_tracking_get_generator_date
const OSCAP_API char * cvrf_doc_tracking_get_generator_date(const struct cvrf_doc_tracking *tracking)
cvrf_relationship::cvrf_relationship_set_relates_to_ref
OSCAP_API bool cvrf_relationship_set_relates_to_ref(struct cvrf_relationship *relation, const char *relates_to_ref)
cvrf_vulnerability::cvrf_vulnerability_add_threat
OSCAP_API bool cvrf_vulnerability_add_threat(struct cvrf_vulnerability *vuln, struct cvrf_threat *threat)
cvrf_remediation
Definition: cvrf_priv.c:64
cvrf_model::cvrf_model_get_vulnerabilities
OSCAP_API struct cvrf_vulnerability_iterator * cvrf_model_get_vulnerabilities(const struct cvrf_model *model)
cvrf_threat::cvrf_threat_get_product_ids
OSCAP_API struct oscap_string_iterator * cvrf_threat_get_product_ids(struct cvrf_threat *threat)
Definition: cvrf_priv.c:229
cvrf_product_tree
Definition: cvrf_priv.c:753
cvrf_involvement::cvrf_involvement_free
OSCAP_API void cvrf_involvement_free(struct cvrf_involvement *involve)
Deallocates memory for an Involvement element.
Definition: cvrf_priv.c:342
cvrf_note::cvrf_note_get_ordinal
OSCAP_API int cvrf_note_get_ordinal(const struct cvrf_note *note)
cvrf_involvement::cvrf_involvement_new
OSCAP_API struct cvrf_involvement * cvrf_involvement_new(void)
New CVRF Involvement.
Definition: cvrf_priv.c:331
cvrf_rpm_attributes::cvrf_rpm_attributes_get_evr_format
const OSCAP_API char * cvrf_rpm_attributes_get_evr_format(const struct cvrf_rpm_attributes *attributes)
Used to check if the system is vulnerable by comparing EVR from the system to EVR in the CVRF file.
cvrf_document::cvrf_document_new
OSCAP_API struct cvrf_document * cvrf_document_new(void)
New CVRF Document structure.
Definition: cvrf_priv.c:1190
cvrf_score_set::cvrf_score_set_get_impact
OSCAP_API struct cvss_impact * cvrf_score_set_get_impact(const struct cvrf_score_set *score_set)
cvrf_doc_tracking::cvrf_doc_tracking_set_cur_release_date
OSCAP_API bool cvrf_doc_tracking_set_cur_release_date(struct cvrf_doc_tracking *tracking, const char *cur_release_date)
cvrf_revision::cvrf_revision_set_date
OSCAP_API bool cvrf_revision_set_date(struct cvrf_revision *revision, const char *date)
cvrf_doc_publisher::cvrf_doc_publisher_get_contact_details
const OSCAP_API char * cvrf_doc_publisher_get_contact_details(const struct cvrf_doc_publisher *publisher)
cvrf_doc_tracking::cvrf_doc_tracking_get_cur_release_date
const OSCAP_API char * cvrf_doc_tracking_get_cur_release_date(const struct cvrf_doc_tracking *tracking)
cvrf_branch::cvrf_branch_set_branch_name
OSCAP_API bool cvrf_branch_set_branch_name(struct cvrf_branch *branch, const char *branch_name)
cvrf_revision::cvrf_revision_get_number
const OSCAP_API char * cvrf_revision_get_number(const struct cvrf_revision *revision)
cvrf_vulnerability::cvrf_vulnerability_add_cwe
OSCAP_API bool cvrf_vulnerability_add_cwe(struct cvrf_vulnerability *vuln, struct cvrf_vulnerability_cwe *vulnerability_cwe)
cvrf_product_status::cvrf_product_status_free
OSCAP_API void cvrf_product_status_free(struct cvrf_product_status *status)
Deallocates memory for a Status element of the ProductStatuses container.
Definition: cvrf_priv.c:297
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_new
OSCAP_API struct cvrf_vulnerability_cwe * cvrf_vulnerability_cwe_new(void)
New CVRF CWE structure.
Definition: cvrf_priv.c:369
cvrf_remediation::cvrf_remediation_get_group_ids
OSCAP_API struct oscap_string_iterator * cvrf_remediation_get_group_ids(struct cvrf_remediation *remed)
Definition: cvrf_priv.c:85
cvrf_rpm_attributes::cvrf_rpm_attributes_get_full_package_name
const OSCAP_API char * cvrf_rpm_attributes_get_full_package_name(const struct cvrf_rpm_attributes *attributes)
cvrf_doc_publisher::cvrf_doc_publisher_free
OSCAP_API void cvrf_doc_publisher_free(struct cvrf_doc_publisher *publisher)
Deallocates memory for a DocumentPublisher element.
Definition: cvrf_priv.c:1094
cvrf_note::cvrf_note_set_contents
OSCAP_API bool cvrf_note_set_contents(struct cvrf_note *note, const char *contents)
cvrf_doc_tracking::cvrf_doc_tracking_set_tracking_id
OSCAP_API bool cvrf_doc_tracking_set_tracking_id(struct cvrf_doc_tracking *tracking, const char *id)
cvrf_acknowledgment::cvrf_acknowledgment_get_urls
OSCAP_API struct oscap_string_iterator * cvrf_acknowledgment_get_urls(const struct cvrf_acknowledgment *ack)
Definition: cvrf_priv.c:857
cvrf_vulnerability::cvrf_vulnerability_add_remediation
OSCAP_API bool cvrf_vulnerability_add_remediation(struct cvrf_vulnerability *vuln, struct cvrf_remediation *remed)
cvrf_vulnerability::cvrf_vulnerability_get_title
const OSCAP_API char * cvrf_vulnerability_get_title(const struct cvrf_vulnerability *vuln)
cvrf_branch::cvrf_branch_get_subbranches
OSCAP_API struct oscap_iterator * cvrf_branch_get_subbranches(struct cvrf_branch *branch)
Definition: cvrf_priv.c:694
cvrf_product_tree::cvrf_product_tree_get_product_names
OSCAP_API struct cvrf_product_name_iterator * cvrf_product_tree_get_product_names(const struct cvrf_product_tree *tree)
cvss_category
cvss_category
CVSS score category.
Definition: cvss_score.h:48
oscap_source
Definition: oscap_source.c:66
cvrf_vulnerability::cvrf_vulnerability_filter_by_product
OSCAP_API int cvrf_vulnerability_filter_by_product(struct cvrf_vulnerability *vuln, const char *prod)
Definition: cvrf_priv.c:517
cvrf_remediation::cvrf_remediation_set_entitlement
OSCAP_API bool cvrf_remediation_set_entitlement(struct cvrf_remediation *remed, const char *entitlement)
cvrf_product_name::cvrf_product_name_set_cpe
OSCAP_API bool cvrf_product_name_set_cpe(struct cvrf_product_name *full_name, const char *cpe)
cvrf_product_name::cvrf_product_name_free
OSCAP_API void cvrf_product_name_free(struct cvrf_product_name *full_name)
Deallocates memory for a FullProductName element.
Definition: cvrf_priv.c:573
cvrf_document::cvrf_document_set_namespace
OSCAP_API bool cvrf_document_set_namespace(struct cvrf_document *doc, const char *ns)
cvrf_remediation::cvrf_remediation_get_entitlement
const OSCAP_API char * cvrf_remediation_get_entitlement(const struct cvrf_remediation *remed)
cvrf_session::cvrf_session_new_from_source_index
OSCAP_API struct cvrf_session * cvrf_session_new_from_source_index(struct oscap_source *source)
Definition: cvrf_eval.c:106
cvrf_relationship::cvrf_relationship_clone
OSCAP_API struct cvrf_relationship * cvrf_relationship_clone(const struct cvrf_relationship *relation)
Definition: cvrf_priv.c:673
oscap.h
cvrf_note::cvrf_note_clone
OSCAP_API struct cvrf_note * cvrf_note_clone(const struct cvrf_note *note)
Definition: cvrf_priv.c:935
cvrf_index::cvrf_index_clone
OSCAP_API struct cvrf_index * cvrf_index_clone(const struct cvrf_index *index)
Definition: cvrf_priv.c:1343
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_free
OSCAP_API void cvrf_vulnerability_cwe_free(struct cvrf_vulnerability_cwe *cwe)
Deallocates memory for a CWE element.
Definition: cvrf_priv.c:379
cvrf_session::cvrf_session_get_model
OSCAP_API struct cvrf_model * cvrf_session_get_model(struct cvrf_session *session)
Definition: cvrf_eval.c:81
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_set_id
OSCAP_API bool cvrf_vulnerability_cwe_set_id(struct cvrf_vulnerability_cwe *vuln_cwe, const char *id)
cvrf_model::cvrf_model_set_doc_title
OSCAP_API bool cvrf_model_set_doc_title(struct cvrf_model *model, const char *doc_title)
cvrf_index::cvrf_index_set_source_url
OSCAP_API bool cvrf_index_set_source_url(struct cvrf_index *index, const char *url)
cvrf_index::cvrf_index_new
OSCAP_API struct cvrf_index * cvrf_index_new(void)
New index structure holding all CVRF models.
Definition: cvrf_priv.c:1322
cvrf_rpm_attributes
Definition: cvrf_eval.c:134
cvrf_vulnerability::cvrf_vulnerability_free
OSCAP_API void cvrf_vulnerability_free(struct cvrf_vulnerability *vulnerability)
Deallocates memory for a Vulnerability element.
Definition: cvrf_priv.c:475
cvrf_doc_tracking::cvrf_doc_tracking_set_generator_engine
OSCAP_API bool cvrf_doc_tracking_set_generator_engine(struct cvrf_doc_tracking *tracking, const char *generator_engine)
cvrf_product_tree::cvrf_product_tree_clone
OSCAP_API struct cvrf_product_tree * cvrf_product_tree_clone(const struct cvrf_product_tree *tree)
Definition: cvrf_priv.c:793
cvrf_involvement
Definition: cvrf_priv.c:316
cvrf_relationship
Definition: cvrf_priv.c:636
cvrf_score_set::cvrf_score_set_get_environmental_score
OSCAP_API char * cvrf_score_set_get_environmental_score(const struct cvrf_score_set *score_set)
Definition: cvrf_priv.c:175
cvrf_vulnerability::cvrf_vulnerability_set_title
OSCAP_API bool cvrf_vulnerability_set_title(struct cvrf_vulnerability *vuln, const char *vulnerability_title)
cvrf_session::cvrf_index_get_results_source
OSCAP_API struct oscap_source * cvrf_index_get_results_source(struct oscap_source *import_source, const char *os_name)
Import and parse the CVRF Index from the provided source, filter it by CPE to find appropriate packag...
Definition: cvrf_eval.c:256
cvrf_vulnerability::cvrf_vulnerability_clone
OSCAP_API struct cvrf_vulnerability * cvrf_vulnerability_clone(const struct cvrf_vulnerability *vuln)
Definition: cvrf_priv.c:497
cvrf_reference::cvrf_reference_new
OSCAP_API struct cvrf_reference * cvrf_reference_new(void)
New CVRF Reference structure.
Definition: cvrf_priv.c:1130
cvrf_vulnerability::cvrf_vulnerability_get_references
OSCAP_API struct oscap_iterator * cvrf_vulnerability_get_references(struct cvrf_vulnerability *vuln)
Definition: cvrf_priv.c:438
cvrf_doc_tracking::cvrf_doc_tracking_get_revision_history
OSCAP_API struct cvrf_revision_iterator * cvrf_doc_tracking_get_revision_history(const struct cvrf_doc_tracking *tracking)
cvrf_product_name
Definition: cvrf_priv.c:556
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_set_cwe
OSCAP_API bool cvrf_vulnerability_cwe_set_cwe(struct cvrf_vulnerability_cwe *vuln_cwe, const char *cwe)
cvrf_vulnerability::cvrf_vulnerability_set_system_name
OSCAP_API bool cvrf_vulnerability_set_system_name(struct cvrf_vulnerability *vuln, const char *sys_name)
cvrf_remediation::cvrf_remediation_get_product_ids
OSCAP_API struct oscap_string_iterator * cvrf_remediation_get_product_ids(struct cvrf_remediation *remed)
Definition: cvrf_priv.c:82
cvrf_relationship::cvrf_relationship_get_product_name
OSCAP_API struct cvrf_product_name * cvrf_relationship_get_product_name(const struct cvrf_relationship *relation)
cvrf_remediation::cvrf_remediation_get_description
const OSCAP_API char * cvrf_remediation_get_description(const struct cvrf_remediation *remed)
cvrf_threat::cvrf_threat_get_group_ids
OSCAP_API struct oscap_string_iterator * cvrf_threat_get_group_ids(struct cvrf_threat *threat)
Definition: cvrf_priv.c:232
cvrf_product_tree::cvrf_product_tree_add_relationship
OSCAP_API bool cvrf_product_tree_add_relationship(struct cvrf_product_tree *tree, struct cvrf_relationship *relation)
cvrf_product_status::cvrf_product_status_get_ids
OSCAP_API struct oscap_string_iterator * cvrf_product_status_get_ids(struct cvrf_product_status *stat)
Definition: cvrf_priv.c:280
cvrf_product_status::cvrf_product_status_clone
OSCAP_API struct cvrf_product_status * cvrf_product_status_clone(const struct cvrf_product_status *stat)
Definition: cvrf_priv.c:305
cvrf_session::cvrf_session_set_index
OSCAP_API bool cvrf_session_set_index(struct cvrf_session *session, struct cvrf_index *index)
Add the CVRF index to be evaluated to the Session structure.
oscap_iterator
Definition: list.h:81
cvrf_relationship::cvrf_relationship_set_product_reference
OSCAP_API bool cvrf_relationship_set_product_reference(struct cvrf_relationship *relation, const char *product_reference)
cvrf_note::cvrf_note_free
OSCAP_API void cvrf_note_free(struct cvrf_note *note)
Deallocates memory for a Note element of the Notes container.
Definition: cvrf_priv.c:925
cvrf_product_tree::cvrf_product_tree_add_group
OSCAP_API bool cvrf_product_tree_add_group(struct cvrf_product_tree *tree, struct cvrf_group *group)
cvrf_product_tree::cvrf_product_tree_filter_by_cpe
OSCAP_API int cvrf_product_tree_filter_by_cpe(struct cvrf_product_tree *tree, const char *cpe)
Use the CPE name to find the matching ProductID, then filter the tree by removing branches and relati...
Definition: cvrf_priv.c:813
cvrf_document::cvrf_document_set_aggregate_severity
OSCAP_API bool cvrf_document_set_aggregate_severity(struct cvrf_document *doc, const char *severity)
cvrf_threat::cvrf_threat_get_date
const OSCAP_API char * cvrf_threat_get_date(const struct cvrf_threat *threat)
cvrf_model::cvrf_model_get_identification
const OSCAP_API char * cvrf_model_get_identification(struct cvrf_model *model)
Definition: cvrf_priv.c:1255
cvrf_score_set
Definition: cvrf_priv.c:133
cvrf_vulnerability::cvrf_vulnerability_add_cvrf_product_status
OSCAP_API bool cvrf_vulnerability_add_cvrf_product_status(struct cvrf_vulnerability *vuln, struct cvrf_product_status *stat)
cvrf_vulnerability::cvrf_vulnerability_get_product_statuses
OSCAP_API struct cvrf_product_status_iterator * cvrf_vulnerability_get_product_statuses(const struct cvrf_vulnerability *vuln)
cvrf_vulnerability::cvrf_vulnerability_get_ordinal
OSCAP_API int cvrf_vulnerability_get_ordinal(const struct cvrf_vulnerability *vuln)
cvrf_document::cvrf_document_get_publisher
OSCAP_API struct cvrf_doc_publisher * cvrf_document_get_publisher(const struct cvrf_document *doc)
cvrf_rpm_attributes::cvrf_rpm_attributes_new
OSCAP_API struct cvrf_rpm_attributes * cvrf_rpm_attributes_new(void)
Create a new CVRF RPM attributes structure.
Definition: cvrf_eval.c:144
cvrf_document::cvrf_document_set_publisher
OSCAP_API bool cvrf_document_set_publisher(struct cvrf_document *doc, struct cvrf_doc_publisher *publisher)
cvrf_relationship::cvrf_relationship_set_product_name
OSCAP_API bool cvrf_relationship_set_product_name(struct cvrf_relationship *relation, struct cvrf_product_name *name)
cvrf_note
Definition: cvrf_priv.c:896
cvrf_threat::cvrf_threat_new
OSCAP_API struct cvrf_threat * cvrf_threat_new(void)
New CVRF Threat element.
Definition: cvrf_priv.c:236
cvrf_revision::cvrf_revision_clone
OSCAP_API struct cvrf_revision * cvrf_revision_clone(const struct cvrf_revision *revision)
Definition: cvrf_priv.c:979
cvrf_session::cvrf_session_set_model
OSCAP_API void cvrf_session_set_model(struct cvrf_session *session, struct cvrf_model *model)
Add the CVRF model to be evaluated to the Session structure.
Definition: cvrf_eval.c:84
cvrf_group::cvrf_group_set_group_id
OSCAP_API bool cvrf_group_set_group_id(struct cvrf_group *group, const char *group_id)
cvrf_index::cvrf_index_get_source_url
const OSCAP_API char * cvrf_index_get_source_url(const struct cvrf_index *index)
cvrf_threat
Definition: cvrf_priv.c:216
cvrf_session::cvrf_session_get_index
OSCAP_API struct cvrf_index * cvrf_session_get_index(const struct cvrf_session *session)
cvrf_doc_tracking
Definition: cvrf_priv.c:990
cvrf_score_set::cvrf_score_set_get_product_ids
OSCAP_API struct oscap_string_iterator * cvrf_score_set_get_product_ids(struct cvrf_score_set *score_set)
Definition: cvrf_priv.c:141
cvrf_vulnerability::cvrf_vulnerability_get_acknowledgments
OSCAP_API struct oscap_iterator * cvrf_vulnerability_get_acknowledgments(struct cvrf_vulnerability *vuln)
Definition: cvrf_priv.c:442
cvrf_involvement::cvrf_involvement_set_description
OSCAP_API bool cvrf_involvement_set_description(struct cvrf_involvement *involve, const char *description)
cvrf_branch::cvrf_branch_set_product_name
OSCAP_API bool cvrf_branch_set_product_name(struct cvrf_branch *branch, struct cvrf_product_name *name)
cvrf_product_tree::cvrf_product_tree_add_product_name
OSCAP_API bool cvrf_product_tree_add_product_name(struct cvrf_product_tree *tree, struct cvrf_product_name *full_name)
cvrf_model::cvrf_model_get_product_tree
OSCAP_API struct cvrf_product_tree * cvrf_model_get_product_tree(struct cvrf_model *model)
Definition: cvrf_priv.c:1251
cvrf_note::cvrf_note_get_title
const OSCAP_API char * cvrf_note_get_title(const struct cvrf_note *note)
cvrf_doc_publisher::cvrf_doc_publisher_new
OSCAP_API struct cvrf_doc_publisher * cvrf_doc_publisher_new(void)
New CVRF DocumentPublisher structure.
Definition: cvrf_priv.c:1082
cvrf_session::cvrf_session_get_product_ids
OSCAP_API struct oscap_string_iterator * cvrf_session_get_product_ids(struct cvrf_session *session)
After filtering the CVRF model structure by the CPE, all the ProductIDs related to that operating sys...
Definition: cvrf_eval.c:78
cvrf_doc_tracking::cvrf_doc_tracking_get_version
const OSCAP_API char * cvrf_doc_tracking_get_version(const struct cvrf_doc_tracking *tracking)
cvrf_vulnerability_cwe
Definition: cvrf_priv.c:362
cvrf_index::cvrf_index_set_index_file
OSCAP_API bool cvrf_index_set_index_file(struct cvrf_index *index, const char *index_file)
cvrf_session::cvrf_session_get_os_name
const OSCAP_API char * cvrf_session_get_os_name(const struct cvrf_session *session)
cvrf_doc_publisher::cvrf_doc_publisher_set_vendor_id
OSCAP_API bool cvrf_doc_publisher_set_vendor_id(struct cvrf_doc_publisher *publisher, const char *vendor_id)
cvrf_acknowledgment::cvrf_acknowledgment_free
OSCAP_API void cvrf_acknowledgment_free(struct cvrf_acknowledgment *ack)
Deallocates memory for an Acknowledgment element of the Acknowledgments container.
Definition: cvrf_priv.c:873
cvrf_relationship::cvrf_relationship_free
OSCAP_API void cvrf_relationship_free(struct cvrf_relationship *relationship)
Deallocates memory for a Relationship element.
Definition: cvrf_priv.c:663
cvrf_vulnerability::cvrf_vulnerability_get_threats
OSCAP_API struct cvrf_threat_iterator * cvrf_vulnerability_get_threats(const struct cvrf_vulnerability *vuln)
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_clone
OSCAP_API struct cvrf_vulnerability_cwe * cvrf_vulnerability_cwe_clone(const struct cvrf_vulnerability_cwe *cwe)
Definition: cvrf_priv.c:388
cvrf_revision::cvrf_revision_new
OSCAP_API struct cvrf_revision * cvrf_revision_new(void)
New CVRF Revision structure.
Definition: cvrf_priv.c:958
cvrf_vulnerability::cvrf_vulnerability_get_release_date
const OSCAP_API char * cvrf_vulnerability_get_release_date(const struct cvrf_vulnerability *vuln)
cvrf_vulnerability::cvrf_vulnerability_get_cve_id
const OSCAP_API char * cvrf_vulnerability_get_cve_id(const struct cvrf_vulnerability *vuln)
cvrf_remediation::cvrf_remediation_get_date
const OSCAP_API char * cvrf_remediation_get_date(const struct cvrf_remediation *remed)
cvrf_vulnerability::cvrf_vulnerability_get_remediations
OSCAP_API struct cvrf_remediation_iterator * cvrf_vulnerability_get_remediations(const struct cvrf_vulnerability *vuln)
cvrf_product_tree::cvrf_product_tree_new
OSCAP_API struct cvrf_product_tree * cvrf_product_tree_new(void)
New ProductTree structure.
Definition: cvrf_priv.c:770
cvrf_product_tree::cvrf_product_tree_free
OSCAP_API void cvrf_product_tree_free(struct cvrf_product_tree *tree)
Deallocates memory for a ProductTree element and all its child Branches, Relationships,...
Definition: cvrf_priv.c:782
cvrf_reference::cvrf_reference_free
OSCAP_API void cvrf_reference_free(struct cvrf_reference *reference)
Deallocates memory for a Reference element of the References container.
Definition: cvrf_priv.c:1142
cvrf_vulnerability::cvrf_vulnerability_get_cwes
OSCAP_API struct cvrf_vulnerability_cwe_iterator * cvrf_vulnerability_get_cwes(const struct cvrf_vulnerability *vuln)
cvrf_rpm_attributes::cvrf_rpm_attributes_set_full_package_name
OSCAP_API bool cvrf_rpm_attributes_set_full_package_name(struct cvrf_rpm_attributes *attributes, const char *full_package)
cvrf_vulnerability::cvrf_vulnerability_set_ordinal
OSCAP_API bool cvrf_vulnerability_set_ordinal(struct cvrf_vulnerability *vuln, int ordinal)
cvrf_involvement::cvrf_involvement_get_description
const OSCAP_API char * cvrf_involvement_get_description(const struct cvrf_involvement *involve)
cvrf_product_tree::cvrf_product_tree_get_product_groups
OSCAP_API struct cvrf_group_iterator * cvrf_product_tree_get_product_groups(const struct cvrf_product_tree *tree)
cvrf_score_set::cvrf_score_set_get_temporal_score
OSCAP_API char * cvrf_score_set_get_temporal_score(const struct cvrf_score_set *score_set)
Definition: cvrf_priv.c:179
cvrf_session::cvrf_model_get_results_source
OSCAP_API struct oscap_source * cvrf_model_get_results_source(struct oscap_source *import_source, const char *os_name)
Import and parse the CVRF Model from the provided source, filter it by CPE to find appropriate packag...
Definition: cvrf_eval.c:225
cvrf_revision::cvrf_revision_get_description
const OSCAP_API char * cvrf_revision_get_description(const struct cvrf_revision *revision)
cvrf_note::cvrf_note_set_ordinal
OSCAP_API bool cvrf_note_set_ordinal(struct cvrf_note *note, int ordinal)
cvrf_vulnerability::cvrf_vulnerability_add_involvement
OSCAP_API bool cvrf_vulnerability_add_involvement(struct cvrf_vulnerability *vuln, struct cvrf_involvement *involvement)
cvrf_group::cvrf_group_clone
OSCAP_API struct cvrf_group * cvrf_group_clone(const struct cvrf_group *group)
Definition: cvrf_priv.c:625
cvrf_rpm_attributes::cvrf_rpm_attributes_set_rpm_name
OSCAP_API bool cvrf_rpm_attributes_set_rpm_name(struct cvrf_rpm_attributes *attributes, const char *rpm_name)
cvrf_reference::cvrf_reference_get_description
const OSCAP_API char * cvrf_reference_get_description(const struct cvrf_reference *reference)
cvrf_vulnerability::cvrf_vulnerability_get_notes
OSCAP_API struct oscap_iterator * cvrf_vulnerability_get_notes(struct cvrf_vulnerability *vuln)
Definition: cvrf_priv.c:446
cvrf_doc_tracking::cvrf_doc_tracking_get_init_release_date
const OSCAP_API char * cvrf_doc_tracking_get_init_release_date(const struct cvrf_doc_tracking *tracking)
cvrf_product_name::cvrf_product_name_clone
OSCAP_API struct cvrf_product_name * cvrf_product_name_clone(const struct cvrf_product_name *full_name)
Definition: cvrf_priv.c:582
cvrf_reference
Definition: cvrf_priv.c:1118
cvrf_branch::cvrf_branch_clone
OSCAP_API struct cvrf_branch * cvrf_branch_clone(const struct cvrf_branch *branch)
Definition: cvrf_priv.c:724
cvrf_acknowledgment::cvrf_acknowledgment_clone
OSCAP_API struct cvrf_acknowledgment * cvrf_acknowledgment_clone(const struct cvrf_acknowledgment *ack)
Definition: cvrf_priv.c:884
cvrf_doc_tracking::cvrf_doc_tracking_free
OSCAP_API void cvrf_doc_tracking_free(struct cvrf_doc_tracking *tracking)
Deallocates memory for a DocumentTracking element.
Definition: cvrf_priv.c:1035
cvrf_vulnerability::cvrf_vulnerability_add_score_set
OSCAP_API bool cvrf_vulnerability_add_score_set(struct cvrf_vulnerability *vuln, struct cvrf_score_set *score_set)
cvrf_index::cvrf_index_get_export_source
OSCAP_API struct oscap_source * cvrf_index_get_export_source(struct cvrf_index *index)
Export CVRF Index to the export source as an XML doc.
Definition: cvrf.c:76
cvrf_remediation::cvrf_remediation_set_url
OSCAP_API bool cvrf_remediation_set_url(struct cvrf_remediation *remed, const char *url)
cvrf_remediation::cvrf_remediation_set_description
OSCAP_API bool cvrf_remediation_set_description(struct cvrf_remediation *remed, const char *description)
cvrf_involvement::cvrf_involvement_clone
OSCAP_API struct cvrf_involvement * cvrf_involvement_clone(const struct cvrf_involvement *involve)
Definition: cvrf_priv.c:350
cvrf_model::cvrf_model_set_doc_type
OSCAP_API bool cvrf_model_set_doc_type(struct cvrf_model *model, const char *doc_type)
cvrf_reference::cvrf_reference_get_url
const OSCAP_API char * cvrf_reference_get_url(const struct cvrf_reference *reference)
cvrf_doc_tracking::cvrf_doc_tracking_clone
OSCAP_API struct cvrf_doc_tracking * cvrf_doc_tracking_clone(const struct cvrf_doc_tracking *tracking)
Definition: cvrf_priv.c:1050
cvrf_group::cvrf_group_set_description
OSCAP_API bool cvrf_group_set_description(struct cvrf_group *group, const char *description)
cvrf_model::cvrf_model_clone
OSCAP_API struct cvrf_model * cvrf_model_clone(const struct cvrf_model *model)
Definition: cvrf_priv.c:1285
cvrf_score_set::cvrf_score_set_clone
OSCAP_API struct cvrf_score_set * cvrf_score_set_clone(const struct cvrf_score_set *score_set)
Definition: cvrf_priv.c:204
cvrf_rpm_attributes::cvrf_rpm_attributes_set_evr_format
OSCAP_API bool cvrf_rpm_attributes_set_evr_format(struct cvrf_rpm_attributes *attributes, const char *evr_format)
cvrf_group::cvrf_group_free
OSCAP_API void cvrf_group_free(struct cvrf_group *group)
Deallocates memory for a Group element.
Definition: cvrf_priv.c:615
cvrf_index
Definition: cvrf_priv.c:1312
cvrf_document::cvrf_document_set_doc_distribution
OSCAP_API bool cvrf_document_set_doc_distribution(struct cvrf_document *doc, const char *distribution)
cvrf_doc_tracking::cvrf_doc_tracking_get_aliases
OSCAP_API struct oscap_string_iterator * cvrf_doc_tracking_get_aliases(struct cvrf_doc_tracking *tracking)
Definition: cvrf_priv.c:1014
cvrf_document::cvrf_document_get_namespace
const OSCAP_API char * cvrf_document_get_namespace(const struct cvrf_document *doc)
cvrf_product_status::cvrf_product_status_new
OSCAP_API struct cvrf_product_status * cvrf_product_status_new(void)
New Status member of a ProductStatuses container within a Vulnerability element.
Definition: cvrf_priv.c:287
cvrf_session::cvrf_session_free
OSCAP_API void cvrf_session_free(struct cvrf_session *session)
Deallocates memory for a CVRF Session structure.
Definition: cvrf_eval.c:120
cvrf_remediation::cvrf_remediation_clone
OSCAP_API struct cvrf_remediation * cvrf_remediation_clone(const struct cvrf_remediation *remed)
Definition: cvrf_priv.c:117
cvrf_product_status
Definition: cvrf_priv.c:275
cvrf_model::cvrf_model_get_doc_title
const OSCAP_API char * cvrf_model_get_doc_title(const struct cvrf_model *model)
cvrf_session::cvrf_session_new_from_source_model
OSCAP_API struct cvrf_session * cvrf_session_new_from_source_model(struct oscap_source *source)
Definition: cvrf_eval.c:88
cvrf_note::cvrf_note_set_title
OSCAP_API bool cvrf_note_set_title(struct cvrf_note *note, const char *title)
cvrf_revision
Definition: cvrf_priv.c:949
cvrf_reference::cvrf_reference_set_description
OSCAP_API bool cvrf_reference_set_description(struct cvrf_reference *reference, const char *description)
cvrf_score_set::cvrf_score_set_add_metric
OSCAP_API bool cvrf_score_set_add_metric(struct cvrf_score_set *score_set, enum cvss_category category, const char *score)
Definition: cvrf_priv.c:145
cvrf_revision::cvrf_revision_set_description
OSCAP_API bool cvrf_revision_set_description(struct cvrf_revision *revision, const char *description)
cvrf_doc_tracking::cvrf_doc_tracking_get_tracking_id
const OSCAP_API char * cvrf_doc_tracking_get_tracking_id(const struct cvrf_doc_tracking *tracking)
cvrf_vulnerability::cvrf_vulnerability_set_system_id
OSCAP_API bool cvrf_vulnerability_set_system_id(struct cvrf_vulnerability *vuln, const char *id)
cvrf_doc_publisher
Definition: cvrf_priv.c:1068
cvrf_doc_publisher::cvrf_doc_publisher_set_contact_details
OSCAP_API bool cvrf_doc_publisher_set_contact_details(struct cvrf_doc_publisher *publisher, const char *contact_details)
cvrf_doc_tracking::cvrf_doc_tracking_set_init_release_date
OSCAP_API bool cvrf_doc_tracking_set_init_release_date(struct cvrf_doc_tracking *tracking, const char *init_release_date)
cvrf_document::cvrf_document_free
OSCAP_API void cvrf_document_free(struct cvrf_document *doc)
Deallocates memory for the CVRF Document structure and all its child DocumentTracking,...
Definition: cvrf_priv.c:1206
cvrf_product_name::cvrf_product_name_new
OSCAP_API struct cvrf_product_name * cvrf_product_name_new(void)
New FullProductName of Branch or ProductTree.
Definition: cvrf_priv.c:563
cvrf_acknowledgment::cvrf_acknowledgment_get_organizations
OSCAP_API struct oscap_string_iterator * cvrf_acknowledgment_get_organizations(const struct cvrf_acknowledgment *ack)
Definition: cvrf_priv.c:853
cvrf_vulnerability::cvrf_vulnerability_get_involvements
OSCAP_API struct cvrf_involvement_iterator * cvrf_vulnerability_get_involvements(const struct cvrf_vulnerability *vuln)
cvrf_threat::cvrf_threat_clone
OSCAP_API struct cvrf_threat * cvrf_threat_clone(const struct cvrf_threat *threat)
Definition: cvrf_priv.c:261
cvrf_model::cvrf_model_add_vulnerability
OSCAP_API bool cvrf_model_add_vulnerability(struct cvrf_model *model, struct cvrf_vulnerability *vuln)
cvrf_remediation::cvrf_remediation_free
OSCAP_API void cvrf_remediation_free(struct cvrf_remediation *remed)
Deallocates memory for a Remediation element of the Remediations container.
Definition: cvrf_priv.c:104
cvrf_acknowledgment
Definition: cvrf_priv.c:841
cvrf_document
Definition: cvrf_priv.c:1162
cvrf_product_name::cvrf_product_name_get_product_id
const OSCAP_API char * cvrf_product_name_get_product_id(const struct cvrf_product_name *full_name)
cvrf_session
Definition: cvrf_eval.c:67
cvrf_score_set::cvrf_score_set_free
OSCAP_API void cvrf_score_set_free(struct cvrf_score_set *score_set)
Deallocates memory for a ScoreSet element of the CVSSScoreSets container.
Definition: cvrf_priv.c:194
cvss_impact
Definition: cvss_priv.h:80
cvrf_group::cvrf_group_get_description
const OSCAP_API char * cvrf_group_get_description(const struct cvrf_group *group)
cvrf_score_set::cvrf_score_set_get_vector
const OSCAP_API char * cvrf_score_set_get_vector(const struct cvrf_score_set *score_set)
cvrf_index::cvrf_index_get_models
OSCAP_API struct cvrf_model_iterator * cvrf_index_get_models(const struct cvrf_index *index)
oscap_string_iterator
cvrf_group::cvrf_group_get_group_id
const OSCAP_API char * cvrf_group_get_group_id(const struct cvrf_group *group)
cvrf_product_name::cvrf_product_name_set_product_id
OSCAP_API bool cvrf_product_name_set_product_id(struct cvrf_product_name *full_name, const char *product_id)
cvrf_vulnerability
Definition: cvrf_priv.c:399
cvrf_acknowledgment::cvrf_acknowledgment_new
OSCAP_API struct cvrf_acknowledgment * cvrf_acknowledgment_new(void)
New CVRF Acknowledgment element within Acknowledgments container.
Definition: cvrf_priv.c:861
cvrf_document::cvrf_document_get_acknowledgments
OSCAP_API struct oscap_iterator * cvrf_document_get_acknowledgments(struct cvrf_document *doc)
Definition: cvrf_priv.c:1186
cvrf_model::cvrf_model_new
OSCAP_API struct cvrf_model * cvrf_model_new(void)
New CVRF model.
Definition: cvrf_priv.c:1260
cvrf_doc_publisher::cvrf_doc_publisher_clone
OSCAP_API struct cvrf_doc_publisher * cvrf_doc_publisher_clone(const struct cvrf_doc_publisher *publisher)
Definition: cvrf_priv.c:1104
cvrf_document::cvrf_document_set_tracking
OSCAP_API bool cvrf_document_set_tracking(struct cvrf_document *doc, struct cvrf_doc_tracking *track)
cvrf_model::cvrf_model_get_export_source
OSCAP_API struct oscap_source * cvrf_model_get_export_source(struct cvrf_model *model)
Export CVRF Model to the export source as an XML doc.
Definition: cvrf.c:89
cvrf_group::cvrf_group_get_product_ids
OSCAP_API struct oscap_string_iterator * cvrf_group_get_product_ids(struct cvrf_group *group)
Definition: cvrf_priv.c:600
cvrf_doc_publisher::cvrf_doc_publisher_set_issuing_authority
OSCAP_API bool cvrf_doc_publisher_set_issuing_authority(struct cvrf_doc_publisher *publisher, const char *issuing_authority)
cvrf_doc_tracking::cvrf_doc_tracking_add_revision
OSCAP_API bool cvrf_doc_tracking_add_revision(struct cvrf_doc_tracking *tracking, struct cvrf_revision *revision)
cvrf_revision::cvrf_revision_get_date
const OSCAP_API char * cvrf_revision_get_date(const struct cvrf_revision *revision)
cvrf_acknowledgment::cvrf_acknowledgment_get_names
OSCAP_API struct oscap_string_iterator * cvrf_acknowledgment_get_names(const struct cvrf_acknowledgment *ack)
Definition: cvrf_priv.c:849
cvrf_product_tree::cvrf_product_tree_get_relationships
OSCAP_API struct cvrf_relationship_iterator * cvrf_product_tree_get_relationships(const struct cvrf_product_tree *tree)
cvrf_model::cvrf_model_filter_by_cpe
OSCAP_API int cvrf_model_filter_by_cpe(struct cvrf_model *model, const char *cpe)
Removes all Branches, Relationships, and ProductIDs within Vulnerabilities that do no pertain to the ...
Definition: cvrf_priv.c:1295
cvrf_document::cvrf_document_get_aggregate_severity
const OSCAP_API char * cvrf_document_get_aggregate_severity(const struct cvrf_document *doc)
cvrf_vulnerability::cvrf_vulnerability_get_system_name
const OSCAP_API char * cvrf_vulnerability_get_system_name(const struct cvrf_vulnerability *vuln)
cvrf_revision::cvrf_revision_free
OSCAP_API void cvrf_revision_free(struct cvrf_revision *revision)
Deallocates memory for a Revision element of the RevisionHistory container.
Definition: cvrf_priv.c:969
cvrf_index::cvrf_index_add_model
OSCAP_API bool cvrf_index_add_model(struct cvrf_index *index, struct cvrf_model *model)
cvrf_doc_publisher::cvrf_doc_publisher_get_vendor_id
const OSCAP_API char * cvrf_doc_publisher_get_vendor_id(const struct cvrf_doc_publisher *publisher)
cvrf_branch::cvrf_branch_get_product_name
OSCAP_API struct cvrf_product_name * cvrf_branch_get_product_name(const struct cvrf_branch *branch)
cvrf_model::cvrf_model_get_document
OSCAP_API struct cvrf_document * cvrf_model_get_document(const struct cvrf_model *model)
cvrf_vulnerability::cvrf_vulnerability_get_score_sets
OSCAP_API struct cvrf_score_set_iterator * cvrf_vulnerability_get_score_sets(const struct cvrf_vulnerability *vuln)
cvrf_vulnerability::cvrf_vulnerability_get_system_id
const OSCAP_API char * cvrf_vulnerability_get_system_id(const struct cvrf_vulnerability *vuln)
cvrf_model::cvrf_model_set_document
OSCAP_API bool cvrf_model_set_document(struct cvrf_model *model, struct cvrf_document *doc)
cvrf_vulnerability::cvrf_vulnerability_get_discovery_date
const OSCAP_API char * cvrf_vulnerability_get_discovery_date(const struct cvrf_vulnerability *vuln)
cvrf_doc_tracking::cvrf_doc_tracking_set_version
OSCAP_API bool cvrf_doc_tracking_set_version(struct cvrf_doc_tracking *tracking, const char *version)
cvrf_vulnerability::cvrf_vulnerability_set_discovery_date
OSCAP_API bool cvrf_vulnerability_set_discovery_date(struct cvrf_vulnerability *vuln, const char *discovery_date)
cvrf_model::cvrf_model_supported
const OSCAP_API char * cvrf_model_supported(void)
Get supported version of CVRF XML.
Definition: cvrf.c:102
cvrf_threat::cvrf_threat_free
OSCAP_API void cvrf_threat_free(struct cvrf_threat *threat)
Deallocates memory for a Threat element of the Threats container.
Definition: cvrf_priv.c:250
cvrf_remediation::cvrf_remediation_set_date
OSCAP_API bool cvrf_remediation_set_date(struct cvrf_remediation *remed, const char *date)
cvrf_relationship::cvrf_relationship_get_relates_to_ref
const OSCAP_API char * cvrf_relationship_get_relates_to_ref(const struct cvrf_relationship *relation)
cvrf_threat::cvrf_threat_set_description
OSCAP_API bool cvrf_threat_set_description(struct cvrf_threat *threat, const char *description)
cvrf_branch::cvrf_branch_get_branch_name
const OSCAP_API char * cvrf_branch_get_branch_name(const struct cvrf_branch *branch)
cvrf_branch::cvrf_branch_new
OSCAP_API struct cvrf_branch * cvrf_branch_new(void)
New CVRF branch of ProductTree or sub-branch.
Definition: cvrf_priv.c:702
cvrf_remediation::cvrf_remediation_new
OSCAP_API struct cvrf_remediation * cvrf_remediation_new(void)
New CVRF Remediation.
Definition: cvrf_priv.c:89
cvrf_score_set::cvrf_score_set_set_vector
OSCAP_API bool cvrf_score_set_set_vector(struct cvrf_score_set *score_set, const char *vector)
cvrf_doc_publisher::cvrf_doc_publisher_get_issuing_authority
const OSCAP_API char * cvrf_doc_publisher_get_issuing_authority(const struct cvrf_doc_publisher *publisher)
cvrf_document::cvrf_document_get_notes
OSCAP_API struct oscap_iterator * cvrf_document_get_notes(struct cvrf_document *doc)
Definition: cvrf_priv.c:1178
cvrf_score_set::cvrf_score_set_new
OSCAP_API struct cvrf_score_set * cvrf_score_set_new(void)
New ScoreSet member of a CVSSScoreSets container within a Vulnerability element.
Definition: cvrf_priv.c:183
cvrf_note::cvrf_note_set_audience
OSCAP_API bool cvrf_note_set_audience(struct cvrf_note *note, const char *audience)
cvrf_model::cvrf_model_import
OSCAP_API struct cvrf_model * cvrf_model_import(struct oscap_source *source)
Parses the specified XML file and creates a list of CVRF data structures.
Definition: cvrf.c:58
cvrf_index::cvrf_index_free
OSCAP_API void cvrf_index_free(struct cvrf_index *index)
Deallocates memory for the CVRF Index structure and all the Models it contains.
Definition: cvrf_priv.c:1333
cvrf_index::cvrf_index_get_index_file
const OSCAP_API char * cvrf_index_get_index_file(const struct cvrf_index *index)
cvrf_product_name::cvrf_product_name_get_cpe
const OSCAP_API char * cvrf_product_name_get_cpe(const struct cvrf_product_name *full_name)
cvss_score.h
Interface to Common Vulnerability Scoring System Version 2.
cvrf_group::cvrf_group_new
OSCAP_API struct cvrf_group * cvrf_group_new(void)
New CVRF Group child of ProductGroups container element.
Definition: cvrf_priv.c:604
cvrf_branch::cvrf_branch_free
OSCAP_API void cvrf_branch_free(struct cvrf_branch *branch)
Deallocates memory for a Branch element.
Definition: cvrf_priv.c:714
cvrf_index::cvrf_index_import
OSCAP_API struct cvrf_index * cvrf_index_import(struct oscap_source *index_source)
Parses specified text index file and parses each filename in the list into a CVRF model contained in ...
Definition: cvrf.c:46
cvrf_threat::cvrf_threat_get_description
const OSCAP_API char * cvrf_threat_get_description(const struct cvrf_threat *threat)
cvrf_relationship::cvrf_relationship_get_product_reference
const OSCAP_API char * cvrf_relationship_get_product_reference(const struct cvrf_relationship *relation)
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_get_cwe
const OSCAP_API char * cvrf_vulnerability_cwe_get_cwe(const struct cvrf_vulnerability_cwe *vuln_cwe)
cvrf_rpm_attributes::cvrf_rpm_attributes_free
OSCAP_API void cvrf_rpm_attributes_free(struct cvrf_rpm_attributes *attributes)
Deallocate memory for the CVRF RPM attributes structure.
Definition: cvrf_eval.c:155
cvrf_score_set::cvrf_score_set_set_impact
OSCAP_API bool cvrf_score_set_set_impact(struct cvrf_score_set *score_set, struct cvss_impact *impact)
cvrf_document::cvrf_document_get_doc_distribution
const OSCAP_API char * cvrf_document_get_doc_distribution(const struct cvrf_document *doc)
cvrf_document::cvrf_document_get_references
OSCAP_API struct oscap_iterator * cvrf_document_get_references(struct cvrf_document *doc)
Definition: cvrf_priv.c:1182
cvrf_threat::cvrf_threat_set_date
OSCAP_API bool cvrf_threat_set_date(struct cvrf_threat *threat, const char *date)
cvrf_reference::cvrf_reference_set_url
OSCAP_API bool cvrf_reference_set_url(struct cvrf_reference *reference, const char *url)
cvrf_vulnerability::cvrf_vulnerability_set_cve_id
OSCAP_API bool cvrf_vulnerability_set_cve_id(struct cvrf_vulnerability *vuln, const char *cve_id)
cvrf_document::cvrf_document_get_tracking
OSCAP_API struct cvrf_doc_tracking * cvrf_document_get_tracking(const struct cvrf_document *doc)
cvrf_note::cvrf_note_get_contents
const OSCAP_API char * cvrf_note_get_contents(const struct cvrf_note *note)
cvrf_session::cvrf_session_set_os_name
OSCAP_API bool cvrf_session_set_os_name(struct cvrf_session *session, const char *os_name)
Add the CPE name for filtering of relevant ProductIDs and CVRF elements.
cvrf_note::cvrf_note_new
OSCAP_API struct cvrf_note * cvrf_note_new(void)
New CVRF Note element within Notes or DocumentNotes container.
Definition: cvrf_priv.c:912
cvrf_acknowledgment::cvrf_acknowledgment_get_description
const OSCAP_API char * cvrf_acknowledgment_get_description(const struct cvrf_acknowledgment *ack)
cvrf_vulnerability::cvrf_vulnerability_new
OSCAP_API struct cvrf_vulnerability * cvrf_vulnerability_new(void)
New CVRF Vulnerability.
Definition: cvrf_priv.c:451
cvrf_model::cvrf_model_free
OSCAP_API void cvrf_model_free(struct cvrf_model *cvrf)
Deallocates memory for the CVRF Model structure and all its child elements.
Definition: cvrf_priv.c:1273
cvrf_revision::cvrf_revision_set_number
OSCAP_API bool cvrf_revision_set_number(struct cvrf_revision *revision, const char *number)
cvrf_model::cvrf_model_get_doc_type
const OSCAP_API char * cvrf_model_get_doc_type(const struct cvrf_model *model)
cvrf_doc_tracking::cvrf_doc_tracking_set_generator_date
OSCAP_API bool cvrf_doc_tracking_set_generator_date(struct cvrf_doc_tracking *tracking, const char *generator_date)
cvrf_vulnerability_cwe::cvrf_vulnerability_cwe_get_id
const OSCAP_API char * cvrf_vulnerability_cwe_get_id(const struct cvrf_vulnerability_cwe *vuln_cwe)
cvrf_product_tree::get_cvrf_product_id_from_cpe
const OSCAP_API char * get_cvrf_product_id_from_cpe(struct cvrf_product_tree *tree, const char *cpe)
Find the unique ProductID for the given CPE by searching the branches of the ProductTree: find the Pr...
Definition: cvrf_priv.c:802
cvrf_rpm_attributes::cvrf_rpm_attributes_get_rpm_name
const OSCAP_API char * cvrf_rpm_attributes_get_rpm_name(const struct cvrf_rpm_attributes *attributes)
Used to check if the RPM file exists on the system during evaluation.
cvrf_group
Definition: cvrf_priv.c:592
cvrf_doc_tracking::cvrf_doc_tracking_get_generator_engine
const OSCAP_API char * cvrf_doc_tracking_get_generator_engine(const struct cvrf_doc_tracking *tracking)
cvrf_doc_tracking::cvrf_doc_tracking_new
OSCAP_API struct cvrf_doc_tracking * cvrf_doc_tracking_new(void)
New CVRF DocumentTracking structure.
Definition: cvrf_priv.c:1018
cvrf_score_set::cvrf_score_set_get_base_score
OSCAP_API char * cvrf_score_set_get_base_score(const struct cvrf_score_set *score_set)
Definition: cvrf_priv.c:171
cvrf_reference::cvrf_reference_clone
OSCAP_API struct cvrf_reference * cvrf_reference_clone(const struct cvrf_reference *ref)
Definition: cvrf_priv.c:1151
cvrf_branch
Definition: cvrf_priv.c:685
cvrf_model
Definition: cvrf_priv.c:1238
cvrf_document::cvrf_document_clone
OSCAP_API struct cvrf_document * cvrf_document_clone(const struct cvrf_document *doc)
Definition: cvrf_priv.c:1221