00001
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef CPEDICT_H_
00038 #define CPEDICT_H_
00039
00040 #include "cpeuri.h"
00041 #include "oscap.h"
00042
00043
00044 struct oscap_title;
00045
00050 struct cpe_check;
00051
00056 struct cpe_reference;
00057
00062 struct cpe_item;
00063
00068 struct cpe_dict_model;
00069
00074 struct cpe_item_metadata;
00075
00080 struct cpe_generator;
00081
00086 struct cpe_vendor;
00091 struct cpe_product;
00096 struct cpe_version;
00101 struct cpe_update;
00106 struct cpe_edition;
00111 struct cpe_language;
00112
00117 struct cpe_item_iterator;
00118
00123 struct cpe_item* cpe_item_iterator_next(struct cpe_item_iterator* it);
00124
00129 bool cpe_item_iterator_has_more(struct cpe_item_iterator* it);
00130
00135 void cpe_item_iterator_free(struct cpe_item_iterator* it);
00136
00141 struct cpe_reference_iterator;
00142
00147 struct cpe_reference* cpe_reference_iterator_next(struct cpe_reference_iterator* it);
00148
00153 bool cpe_reference_iterator_has_more(struct cpe_reference_iterator* it);
00154
00159 void cpe_reference_iterator_free(struct cpe_reference_iterator* it);
00160
00165 struct cpe_check_iterator;
00166
00171 struct cpe_check* cpe_check_iterator_next(struct cpe_check_iterator* it);
00172
00177 bool cpe_check_iterator_has_more(struct cpe_check_iterator* it);
00178
00183 void cpe_check_iterator_free(struct cpe_check_iterator* it);
00184
00189 struct cpe_vendor_iterator;
00190
00195 struct cpe_vendor* cpe_vendor_iterator_next(struct cpe_vendor_iterator* it);
00196
00201 bool cpe_vendor_iterator_has_more(struct cpe_vendor_iterator* it);
00202
00207 void cpe_vendor_iterator_free(struct cpe_vendor_iterator* it);
00208
00213 struct cpe_product_iterator;
00214
00219 struct cpe_product* cpe_product_iterator_next(struct cpe_product_iterator* it);
00220
00225 bool cpe_product_iterator_has_more(struct cpe_product_iterator* it);
00226
00231 void cpe_product_iterator_free(struct cpe_product_iterator* it);
00232
00237 struct cpe_version_iterator;
00238
00243 struct cpe_version* cpe_version_iterator_next(struct cpe_version_iterator* it);
00244
00249 bool cpe_version_iterator_has_more(struct cpe_version_iterator* it);
00250
00255 void cpe_version_iterator_free(struct cpe_version_iterator* it);
00256
00261 struct cpe_update_iterator;
00262
00267 struct cpe_update* cpe_update_iterator_next(struct cpe_update_iterator* it);
00268
00273 bool cpe_update_iterator_has_more(struct cpe_update_iterator* it);
00274
00279 void cpe_update_iterator_free(struct cpe_update_iterator* it);
00280
00285 struct cpe_edition_iterator;
00286
00291 struct cpe_edition* cpe_edition_iterator_next(struct cpe_edition_iterator* it);
00292
00297 bool cpe_edition_iterator_has_more(struct cpe_edition_iterator* it);
00298
00303 void cpe_edition_iterator_free(struct cpe_edition_iterator* it);
00304
00309 struct cpe_language_iterator;
00310
00315 struct cpe_language* cpe_language_iterator_next(struct cpe_language_iterator* it);
00316
00321 bool cpe_language_iterator_has_more(struct cpe_language_iterator* it);
00322
00327 void cpe_language_iterator_free(struct cpe_language_iterator* it);
00328
00333 const char * cpe_item_metadata_get_modification_date(const struct cpe_item_metadata *item);
00334
00339 const char * cpe_item_metadata_get_status(const struct cpe_item_metadata *item);
00340
00345 const char * cpe_item_metadata_get_nvd_id(const struct cpe_item_metadata *item);
00346
00351 const char * cpe_item_metadata_get_deprecated_by_nvd_id(const struct cpe_item_metadata *item);
00352
00357 const char * cpe_check_get_system(const struct cpe_check *item);
00358
00363 const char * cpe_check_get_href(const struct cpe_check *item);
00364
00369 const char * cpe_check_get_identifier(const struct cpe_check *item);
00370
00375 const char * cpe_reference_get_href(const struct cpe_reference *item);
00376
00381 const char * cpe_reference_get_content(const struct cpe_reference *item);
00382
00387 const char * oscap_title_get_content(const struct oscap_title *item);
00388
00393 void cpe_dict_model_export(struct cpe_dict_model * dict, const struct oscap_export_target * target);
00394
00399 struct cpe_name * cpe_item_get_name(const struct cpe_item *item);
00400
00405 struct cpe_name * cpe_item_get_deprecated(const struct cpe_item *item);
00406
00411 const char * cpe_item_get_deprecation_date(const struct cpe_item *item);
00412
00417 struct cpe_item_metadata * cpe_item_get_metadata(const struct cpe_item *item);
00418
00423 struct cpe_reference_iterator * cpe_item_get_references(const struct cpe_item* item);
00424
00429 struct cpe_check_iterator * cpe_item_get_checks(const struct cpe_item* item);
00430
00435 struct oscap_title_iterator * cpe_item_get_titles(const struct cpe_item* item);
00436
00441 struct oscap_title_iterator * cpe_item_get_notes(const struct cpe_item* item);
00442
00447 const char * cpe_generator_get_product_name(const struct cpe_generator *item);
00448
00453 const char * cpe_generator_get_product_version(const struct cpe_generator *item);
00454
00459 const char * cpe_generator_get_schema_version(const struct cpe_generator *item);
00460
00465 const char * cpe_generator_get_timestamp(const struct cpe_generator *item);
00466
00472 struct cpe_generator * cpe_dict_model_get_generator(const struct cpe_dict_model *item);
00473
00478 struct cpe_item_iterator * cpe_dict_model_get_items(const struct cpe_dict_model *item);
00479
00484 struct cpe_vendor_iterator * cpe_dict_model_get_vendors(const struct cpe_dict_model *item);
00485
00490 const char * cpe_vendor_get_value(const struct cpe_vendor *item);
00491
00496 struct oscap_title_iterator * cpe_vendor_get_titles(const struct cpe_vendor *item);
00497
00502 struct cpe_product_iterator * cpe_vendor_get_products(const struct cpe_vendor *item);
00503
00508 const char * cpe_product_get_value(const struct cpe_product *item);
00509
00514 cpe_part_t cpe_product_get_part(const struct cpe_product *item);
00515
00521 struct cpe_version_iterator * cpe_product_get_versions(const struct cpe_product *item);
00522
00527 const char * cpe_version_get_value(const struct cpe_version *item);
00528
00534 struct cpe_update_iterator * cpe_version_get_updates(const struct cpe_version *items);
00535
00540 const char * cpe_update_get_value(const struct cpe_update *item);
00541
00547 struct cpe_edition_iterator * cpe_update_get_editions(const struct cpe_update *items);
00548
00553 const char * cpe_edition_get_value(const struct cpe_edition *item);
00554
00560 struct cpe_language_iterator * cpe_edition_get_languages(const struct cpe_edition *items);
00561
00566 const char * cpe_language_get_value(const struct cpe_language *item);
00567
00574 struct cpe_dict_model *cpe_dict_model_import(const struct oscap_import_source * source);
00575
00583 bool cpe_name_match_dict(struct cpe_name * cpe, struct cpe_dict_model * dict);
00584
00592 bool cpe_name_match_dict_str(const char *cpe, struct cpe_dict_model * dict);
00593
00594
00595
00596
00597
00599 void cpe_check_free(struct cpe_check * check);
00601 void cpe_reference_free(struct cpe_reference * ref);
00603 void cpe_vendor_free(struct cpe_vendor * vendor);
00605 void cpe_product_free(struct cpe_product * product);
00607 void cpe_version_free(struct cpe_version * version);
00609 void cpe_update_free(struct cpe_update * update);
00611 void cpe_edition_free(struct cpe_edition * edition);
00613 void cpe_language_free(struct cpe_language * language);
00615 void cpe_itemmetadata_free(struct cpe_item_metadata * meta);
00617 void cpe_dict_model_free(struct cpe_dict_model * dict);
00619 void cpe_generator_free(struct cpe_generator * generator);
00621 void cpe_item_free(struct cpe_item * item);
00622
00623
00624
00625
00627 struct cpe_dict_model *cpe_dict_model_new(void);
00629 struct cpe_generator *cpe_generator_new(void);
00631 struct cpe_check *cpe_check_new(void);
00633 struct cpe_reference *cpe_reference_new(void);
00635 struct cpe_item *cpe_item_new(void);
00637 struct cpe_vendor *cpe_vendor_new(void);
00639 struct cpe_product *cpe_product_new(void);
00641 struct cpe_version *cpe_version_new(void);
00643 struct cpe_update *cpe_update_new(void);
00645 struct cpe_edition *cpe_edition_new(void);
00647 struct cpe_language *cpe_language_new(void);
00648
00649
00650
00651
00652
00653
00655 bool cpe_item_set_deprecation_date(struct cpe_item *item, const char *new_deprecation_date);
00656
00658 bool cpe_item_metadata_set_modification_date(struct cpe_item_metadata *item_metadata, const char *new_modification_date);
00659
00661 bool cpe_item_metadata_set_status(struct cpe_item_metadata *item_metadata, const char *new_status);
00662
00664 bool cpe_item_metadata_set_nvd_id(struct cpe_item_metadata *item_metadata, const char *new_nvd_id);
00665
00667 bool cpe_item_metadata_set_deprecated_by_nvd_id(struct cpe_item_metadata *item_metadata, const char *new_deprecated_by_nvd_id);
00668
00670 bool cpe_check_set_system(struct cpe_check *check, const char *new_system);
00671
00673 bool cpe_check_set_href(struct cpe_check *check, const char *new_href);
00674
00676 bool cpe_check_set_identifier(struct cpe_check *check, const char *new_identifier);
00677
00679 bool cpe_reference_set_href(struct cpe_reference *reference, const char *new_href);
00680
00682 bool cpe_reference_set_content(struct cpe_reference *reference, const char *new_content);
00683
00685 bool cpe_generator_set_product_name(struct cpe_generator *generator, const char *new_product_name);
00686
00688 bool cpe_generator_set_product_version(struct cpe_generator *generator, const char *new_product_version);
00689
00691 bool cpe_generator_set_schema_version(struct cpe_generator *generator, const char *new_schema_version);
00692
00694 bool cpe_generator_set_timestamp(struct cpe_generator *generator, const char *new_timestamp);
00695
00697 bool cpe_vendor_set_value(struct cpe_vendor *vendor, const char *new_value);
00698
00700 bool cpe_product_set_value(struct cpe_product *product, const char *new_value);
00701
00703 bool cpe_product_set_part(struct cpe_product *product, cpe_part_t new_part);
00704
00706 bool cpe_version_set_value(struct cpe_version *version, const char *new_value);
00707
00709 bool cpe_update_set_value(struct cpe_update *update, const char *new_value);
00710
00712 bool cpe_edition_set_value(struct cpe_edition *edition, const char *new_value);
00713
00715 bool cpe_language_set_value(struct cpe_language *language, const char *new_value);
00716
00717
00718
00719
00720
00721
00723 bool cpe_item_add_reference(struct cpe_item *item, struct cpe_reference *new_reference);
00724
00726 bool cpe_item_add_check(struct cpe_item *item, struct cpe_check *new_check);
00727
00729 bool cpe_item_add_title(struct cpe_item *item, struct oscap_title *new_title);
00730
00732 bool cpe_item_add_note(struct cpe_item *item, struct oscap_title *new_title);
00733
00735 bool cpe_dict_model_add_vendor(struct cpe_dict_model *dict, struct cpe_vendor *new_vendor);
00736
00738 bool cpe_vendor_add_title(struct cpe_vendor *vendor, struct oscap_title *new_title);
00739
00741 bool cpe_vendor_add_product(struct cpe_vendor *vendor, struct cpe_product *new_product);
00742
00744 bool cpe_product_add_version(struct cpe_product *product, struct cpe_version *new_version);
00745
00747 bool cpe_version_add_update(struct cpe_version *version, struct cpe_update *new_update);
00748
00750 bool cpe_update_add_edition(struct cpe_update *update, struct cpe_edition *new_edition);
00751
00753 bool cpe_edition_add_language(struct cpe_edition *edition, struct cpe_language *new_language);
00754
00757 #endif