00001
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef CPEDICT_H_
00041 #define CPEDICT_H_
00042
00043 #include "cpeuri.h"
00044 #include "oscap.h"
00045
00046
00047 struct oscap_title;
00048
00053 struct cpe_check;
00054
00059 struct cpe_reference;
00060
00065 struct cpe_item;
00066
00071 struct cpe_dict_model;
00072
00077 struct cpe_item_metadata;
00078
00083 struct cpe_generator;
00084
00089 struct cpe_vendor;
00094 struct cpe_product;
00099 struct cpe_version;
00104 struct cpe_update;
00109 struct cpe_edition;
00114 struct cpe_language;
00115
00127 const char *cpe_item_metadata_get_modification_date(const struct cpe_item_metadata *item);
00128
00133 const char *cpe_item_metadata_get_status(const struct cpe_item_metadata *item);
00134
00139 const char *cpe_item_metadata_get_nvd_id(const struct cpe_item_metadata *item);
00140
00145 const char *cpe_item_metadata_get_deprecated_by_nvd_id(const struct cpe_item_metadata *item);
00146
00151 const char *cpe_check_get_system(const struct cpe_check *item);
00152
00157 const char *cpe_check_get_href(const struct cpe_check *item);
00158
00163 const char *cpe_check_get_identifier(const struct cpe_check *item);
00164
00169 const char *cpe_reference_get_href(const struct cpe_reference *item);
00170
00175 const char *cpe_reference_get_content(const struct cpe_reference *item);
00176
00181 const char *oscap_title_get_content(const struct oscap_title *item);
00182
00187 struct cpe_name *cpe_item_get_name(const struct cpe_item *item);
00188
00193 struct cpe_name *cpe_item_get_deprecated(const struct cpe_item *item);
00194
00199 const char *cpe_item_get_deprecation_date(const struct cpe_item *item);
00200
00205 struct cpe_item_metadata *cpe_item_get_metadata(const struct cpe_item *item);
00206
00211 struct cpe_reference_iterator *cpe_item_get_references(const struct cpe_item *item);
00212
00217 struct cpe_check_iterator *cpe_item_get_checks(const struct cpe_item *item);
00218
00223 struct oscap_title_iterator *cpe_item_get_titles(const struct cpe_item *item);
00224
00229 struct oscap_title_iterator *cpe_item_get_notes(const struct cpe_item *item);
00230
00235 const char *cpe_generator_get_product_name(const struct cpe_generator *item);
00236
00241 const char *cpe_generator_get_product_version(const struct cpe_generator *item);
00242
00247 const char *cpe_generator_get_schema_version(const struct cpe_generator *item);
00248
00253 const char *cpe_generator_get_timestamp(const struct cpe_generator *item);
00254
00260 struct cpe_generator *cpe_dict_model_get_generator(const struct cpe_dict_model *item);
00261
00266 struct cpe_item_iterator *cpe_dict_model_get_items(const struct cpe_dict_model *item);
00267
00272 struct cpe_vendor_iterator *cpe_dict_model_get_vendors(const struct cpe_dict_model *item);
00273
00278 const char *cpe_vendor_get_value(const struct cpe_vendor *item);
00279
00284 struct oscap_title_iterator *cpe_vendor_get_titles(const struct cpe_vendor *item);
00285
00290 struct cpe_product_iterator *cpe_vendor_get_products(const struct cpe_vendor *item);
00291
00296 const char *cpe_product_get_value(const struct cpe_product *item);
00297
00302 cpe_part_t cpe_product_get_part(const struct cpe_product *item);
00303
00309 struct cpe_version_iterator *cpe_product_get_versions(const struct cpe_product *item);
00310
00315 const char *cpe_version_get_value(const struct cpe_version *item);
00316
00322 struct cpe_update_iterator *cpe_version_get_updates(const struct cpe_version *items);
00323
00328 const char *cpe_update_get_value(const struct cpe_update *item);
00329
00335 struct cpe_edition_iterator *cpe_update_get_editions(const struct cpe_update *items);
00336
00341 const char *cpe_edition_get_value(const struct cpe_edition *item);
00342
00348 struct cpe_language_iterator *cpe_edition_get_languages(const struct cpe_edition *items);
00349
00354 const char *cpe_language_get_value(const struct cpe_language *item);
00355
00360 struct xml_metadata_iterator *cpe_dict_model_get_xmlns(const struct cpe_dict_model *model);
00361
00371
00372 void cpe_check_free(struct cpe_check *check);
00374 void cpe_reference_free(struct cpe_reference *ref);
00376 void cpe_vendor_free(struct cpe_vendor *vendor);
00378 void cpe_product_free(struct cpe_product *product);
00380 void cpe_version_free(struct cpe_version *version);
00382 void cpe_update_free(struct cpe_update *update);
00384 void cpe_edition_free(struct cpe_edition *edition);
00386 void cpe_language_free(struct cpe_language *language);
00388 void cpe_itemmetadata_free(struct cpe_item_metadata *meta);
00390 void cpe_dict_model_free(struct cpe_dict_model *dict);
00392 void cpe_generator_free(struct cpe_generator *generator);
00394 void cpe_item_free(struct cpe_item *item);
00395
00405
00406 struct cpe_dict_model *cpe_dict_model_new(void);
00408 struct cpe_generator *cpe_generator_new(void);
00410 struct cpe_check *cpe_check_new(void);
00412 struct cpe_reference *cpe_reference_new(void);
00414 struct cpe_item *cpe_item_new(void);
00416 struct cpe_vendor *cpe_vendor_new(void);
00418 struct cpe_product *cpe_product_new(void);
00420 struct cpe_version *cpe_version_new(void);
00422 struct cpe_update *cpe_update_new(void);
00424 struct cpe_edition *cpe_edition_new(void);
00426 struct cpe_language *cpe_language_new(void);
00428 struct cpe_item_metadata *cpe_item_metadata_new(void);
00429
00439
00440 bool cpe_item_set_deprecation_date(struct cpe_item *item, const char *new_deprecation_date);
00441
00443 bool cpe_item_metadata_set_modification_date(struct cpe_item_metadata *item_metadata,
00444 const char *new_modification_date);
00445
00447 bool cpe_item_metadata_set_status(struct cpe_item_metadata *item_metadata, const char *new_status);
00448
00450 bool cpe_item_metadata_set_nvd_id(struct cpe_item_metadata *item_metadata, const char *new_nvd_id);
00451
00453 bool cpe_item_metadata_set_deprecated_by_nvd_id(struct cpe_item_metadata *item_metadata,
00454 const char *new_deprecated_by_nvd_id);
00455
00457 bool cpe_check_set_system(struct cpe_check *check, const char *new_system);
00458
00460 bool cpe_check_set_href(struct cpe_check *check, const char *new_href);
00461
00463 bool cpe_check_set_identifier(struct cpe_check *check, const char *new_identifier);
00464
00466 bool cpe_reference_set_href(struct cpe_reference *reference, const char *new_href);
00467
00469 bool cpe_reference_set_content(struct cpe_reference *reference, const char *new_content);
00470
00472 bool cpe_generator_set_product_name(struct cpe_generator *generator, const char *new_product_name);
00473
00475 bool cpe_generator_set_product_version(struct cpe_generator *generator, const char *new_product_version);
00476
00478 bool cpe_generator_set_schema_version(struct cpe_generator *generator, const char *new_schema_version);
00479
00481 bool cpe_generator_set_timestamp(struct cpe_generator *generator, const char *new_timestamp);
00482
00484 bool cpe_vendor_set_value(struct cpe_vendor *vendor, const char *new_value);
00485
00487 bool cpe_product_set_value(struct cpe_product *product, const char *new_value);
00488
00490 bool cpe_product_set_part(struct cpe_product *product, cpe_part_t new_part);
00491
00493 bool cpe_version_set_value(struct cpe_version *version, const char *new_value);
00494
00496 bool cpe_update_set_value(struct cpe_update *update, const char *new_value);
00497
00499 bool cpe_edition_set_value(struct cpe_edition *edition, const char *new_value);
00500
00502 bool cpe_language_set_value(struct cpe_language *language, const char *new_value);
00503
00512
00513
00514
00515
00517 bool cpe_item_add_reference(struct cpe_item *item, struct cpe_reference *new_reference);
00518
00520 bool cpe_item_add_check(struct cpe_item *item, struct cpe_check *new_check);
00521
00523 bool cpe_item_add_title(struct cpe_item *item, struct oscap_title *new_title);
00524
00526 bool cpe_item_add_note(struct cpe_item *item, struct oscap_title *new_title);
00527
00529 bool cpe_dict_model_add_vendor(struct cpe_dict_model *dict, struct cpe_vendor *new_vendor);
00530
00532 bool cpe_vendor_add_title(struct cpe_vendor *vendor, struct oscap_title *new_title);
00533
00535 bool cpe_vendor_add_product(struct cpe_vendor *vendor, struct cpe_product *new_product);
00536
00538 bool cpe_product_add_version(struct cpe_product *product, struct cpe_version *new_version);
00539
00541 bool cpe_version_add_update(struct cpe_version *version, struct cpe_update *new_update);
00542
00544 bool cpe_update_add_edition(struct cpe_update *update, struct cpe_edition *new_edition);
00545
00547 bool cpe_edition_add_language(struct cpe_edition *edition, struct cpe_language *new_language);
00548
00553 bool cpe_dict_model_add_xml(struct cpe_dict_model *model, struct xml_metadata *xml);
00554
00563
00564 void cpe_item_iterator_remove(struct cpe_item_iterator *it);
00565
00567 void cpe_reference_iterator_remove(struct cpe_reference_iterator *it);
00568
00570 void cpe_check_iterator_remove(struct cpe_check_iterator *it);
00571
00573 void cpe_vendor_iterator_remove(struct cpe_vendor_iterator *it);
00574
00576 void cpe_product_iterator_remove(struct cpe_product_iterator *it);
00577
00579 void cpe_version_iterator_remove(struct cpe_version_iterator *it);
00580
00582 void cpe_update_iterator_remove(struct cpe_update_iterator *it);
00583
00585 void cpe_edition_iterator_remove(struct cpe_edition_iterator *it);
00586
00588 void cpe_language_iterator_remove(struct cpe_language_iterator *it);
00589
00602 struct cpe_item_iterator;
00603
00608 struct cpe_item *cpe_item_iterator_next(struct cpe_item_iterator *it);
00609
00614 bool cpe_item_iterator_has_more(struct cpe_item_iterator *it);
00615
00620 void cpe_item_iterator_free(struct cpe_item_iterator *it);
00621
00626 struct cpe_reference_iterator;
00627
00632 struct cpe_reference *cpe_reference_iterator_next(struct cpe_reference_iterator *it);
00633
00638 bool cpe_reference_iterator_has_more(struct cpe_reference_iterator *it);
00639
00644 void cpe_reference_iterator_free(struct cpe_reference_iterator *it);
00645
00650 struct cpe_check_iterator;
00651
00656 struct cpe_check *cpe_check_iterator_next(struct cpe_check_iterator *it);
00657
00662 bool cpe_check_iterator_has_more(struct cpe_check_iterator *it);
00663
00668 void cpe_check_iterator_free(struct cpe_check_iterator *it);
00669
00674 struct cpe_vendor_iterator;
00675
00680 struct cpe_vendor *cpe_vendor_iterator_next(struct cpe_vendor_iterator *it);
00681
00686 bool cpe_vendor_iterator_has_more(struct cpe_vendor_iterator *it);
00687
00692 void cpe_vendor_iterator_free(struct cpe_vendor_iterator *it);
00693
00698 struct cpe_product_iterator;
00699
00704 struct cpe_product *cpe_product_iterator_next(struct cpe_product_iterator *it);
00705
00710 bool cpe_product_iterator_has_more(struct cpe_product_iterator *it);
00711
00716 void cpe_product_iterator_free(struct cpe_product_iterator *it);
00717
00722 struct cpe_version_iterator;
00723
00728 struct cpe_version *cpe_version_iterator_next(struct cpe_version_iterator *it);
00729
00734 bool cpe_version_iterator_has_more(struct cpe_version_iterator *it);
00735
00740 void cpe_version_iterator_free(struct cpe_version_iterator *it);
00741
00746 struct cpe_update_iterator;
00747
00752 struct cpe_update *cpe_update_iterator_next(struct cpe_update_iterator *it);
00753
00758 bool cpe_update_iterator_has_more(struct cpe_update_iterator *it);
00759
00764 void cpe_update_iterator_free(struct cpe_update_iterator *it);
00765
00770 struct cpe_edition_iterator;
00771
00776 struct cpe_edition *cpe_edition_iterator_next(struct cpe_edition_iterator *it);
00777
00782 bool cpe_edition_iterator_has_more(struct cpe_edition_iterator *it);
00783
00788 void cpe_edition_iterator_free(struct cpe_edition_iterator *it);
00789
00794 struct cpe_language_iterator;
00795
00800 struct cpe_language *cpe_language_iterator_next(struct cpe_language_iterator *it);
00801
00806 bool cpe_language_iterator_has_more(struct cpe_language_iterator *it);
00807
00812 void cpe_language_iterator_free(struct cpe_language_iterator *it);
00825 const char * cpe_dict_model_supported(void);
00826
00832 void cpe_dict_model_export(const struct cpe_dict_model *dict, const struct oscap_export_target *target);
00833
00841 struct cpe_dict_model *cpe_dict_model_import(const struct oscap_import_source *source);
00842
00851 bool cpe_name_match_dict(struct cpe_name *cpe, struct cpe_dict_model *dict);
00852
00861 bool cpe_name_match_dict_str(const char *cpe, struct cpe_dict_model *dict);
00862
00869 #endif