00001
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef CPEDICT_H_
00037 #define CPEDICT_H_
00038
00039 #include "cpeuri.h"
00040 #include "oscap.h"
00041
00046 struct cpe_dict_model;
00047
00052 struct cpe_item;
00053
00058 struct cpe_vendor;
00059
00064 struct cpe_generator;
00065
00070 struct cpe_check;
00071
00076 struct cpe_reference;
00077
00082 struct cpe_item_metadata;
00083
00088 struct cpe_product;
00093 struct cpe_version;
00098 struct cpe_update;
00103 struct cpe_edition;
00108 struct cpe_language;
00109
00110
00111 struct oscap_title;
00112
00113
00125 const char *cpe_item_metadata_get_modification_date(const struct cpe_item_metadata *item);
00126
00131 const char *cpe_item_metadata_get_status(const struct cpe_item_metadata *item);
00132
00137 const char *cpe_item_metadata_get_nvd_id(const struct cpe_item_metadata *item);
00138
00143 const char *cpe_item_metadata_get_deprecated_by_nvd_id(const struct cpe_item_metadata *item);
00144
00149 const char *cpe_check_get_system(const struct cpe_check *item);
00150
00155 const char *cpe_check_get_href(const struct cpe_check *item);
00156
00161 const char *cpe_check_get_identifier(const struct cpe_check *item);
00162
00167 const char *cpe_reference_get_href(const struct cpe_reference *item);
00168
00173 const char *cpe_reference_get_content(const struct cpe_reference *item);
00174
00179 const char *oscap_title_get_content(const struct oscap_title *item);
00180
00185 struct cpe_name *cpe_item_get_name(const struct cpe_item *item);
00186
00191 struct cpe_name *cpe_item_get_deprecated(const struct cpe_item *item);
00192
00197 const char *cpe_item_get_deprecation_date(const struct cpe_item *item);
00198
00203 struct cpe_item_metadata *cpe_item_get_metadata(const struct cpe_item *item);
00204
00209 struct cpe_reference_iterator *cpe_item_get_references(const struct cpe_item *item);
00210
00215 struct cpe_check_iterator *cpe_item_get_checks(const struct cpe_item *item);
00216
00221 struct oscap_title_iterator *cpe_item_get_titles(const struct cpe_item *item);
00222
00227 struct oscap_title_iterator *cpe_item_get_notes(const struct cpe_item *item);
00228
00233 const char *cpe_generator_get_product_name(const struct cpe_generator *item);
00234
00239 const char *cpe_generator_get_product_version(const struct cpe_generator *item);
00240
00245 const char *cpe_generator_get_schema_version(const struct cpe_generator *item);
00246
00251 const char *cpe_generator_get_timestamp(const struct cpe_generator *item);
00252
00258 struct cpe_generator *cpe_dict_model_get_generator(const struct cpe_dict_model *item);
00259
00264 struct cpe_item_iterator *cpe_dict_model_get_items(const struct cpe_dict_model *item);
00265
00270 struct cpe_vendor_iterator *cpe_dict_model_get_vendors(const struct cpe_dict_model *item);
00271
00276 const char *cpe_vendor_get_value(const struct cpe_vendor *item);
00277
00282 struct oscap_title_iterator *cpe_vendor_get_titles(const struct cpe_vendor *item);
00283
00288 struct cpe_product_iterator *cpe_vendor_get_products(const struct cpe_vendor *item);
00289
00294 const char *cpe_product_get_value(const struct cpe_product *item);
00295
00300 cpe_part_t cpe_product_get_part(const struct cpe_product *item);
00301
00307 struct cpe_version_iterator *cpe_product_get_versions(const struct cpe_product *item);
00308
00313 const char *cpe_version_get_value(const struct cpe_version *item);
00314
00320 struct cpe_update_iterator *cpe_version_get_updates(const struct cpe_version *items);
00321
00326 const char *cpe_update_get_value(const struct cpe_update *item);
00327
00333 struct cpe_edition_iterator *cpe_update_get_editions(const struct cpe_update *items);
00334
00339 const char *cpe_edition_get_value(const struct cpe_edition *item);
00340
00346 struct cpe_language_iterator *cpe_edition_get_languages(const struct cpe_edition *items);
00347
00352 const char *cpe_language_get_value(const struct cpe_language *item);
00353
00358 struct xml_metadata_iterator *cpe_dict_model_get_xmlns(const struct cpe_dict_model *model);
00359
00360
00363
00364 void cpe_check_free(struct cpe_check *check);
00366 void cpe_reference_free(struct cpe_reference *ref);
00368 void cpe_vendor_free(struct cpe_vendor *vendor);
00370 void cpe_product_free(struct cpe_product *product);
00372 void cpe_version_free(struct cpe_version *version);
00374 void cpe_update_free(struct cpe_update *update);
00376 void cpe_edition_free(struct cpe_edition *edition);
00378 void cpe_language_free(struct cpe_language *language);
00380 void cpe_itemmetadata_free(struct cpe_item_metadata *meta);
00382 void cpe_dict_model_free(struct cpe_dict_model *dict);
00384 void cpe_generator_free(struct cpe_generator *generator);
00386 void cpe_item_free(struct cpe_item *item);
00387
00389 struct cpe_dict_model *cpe_dict_model_new(void);
00391 struct cpe_generator *cpe_generator_new(void);
00393 struct cpe_check *cpe_check_new(void);
00395 struct cpe_reference *cpe_reference_new(void);
00397 struct cpe_item *cpe_item_new(void);
00399 struct cpe_vendor *cpe_vendor_new(void);
00401 struct cpe_product *cpe_product_new(void);
00403 struct cpe_version *cpe_version_new(void);
00405 struct cpe_update *cpe_update_new(void);
00407 struct cpe_edition *cpe_edition_new(void);
00409 struct cpe_language *cpe_language_new(void);
00411 struct cpe_item_metadata *cpe_item_metadata_new(void);
00412
00413
00421
00422 bool cpe_item_set_deprecation_date(struct cpe_item *item, const char *new_deprecation_date);
00423
00425 bool cpe_item_metadata_set_modification_date(struct cpe_item_metadata *item_metadata,
00426 const char *new_modification_date);
00427
00429 bool cpe_item_metadata_set_status(struct cpe_item_metadata *item_metadata, const char *new_status);
00430
00432 bool cpe_item_metadata_set_nvd_id(struct cpe_item_metadata *item_metadata, const char *new_nvd_id);
00433
00435 bool cpe_item_metadata_set_deprecated_by_nvd_id(struct cpe_item_metadata *item_metadata,
00436 const char *new_deprecated_by_nvd_id);
00437
00439 bool cpe_check_set_system(struct cpe_check *check, const char *new_system);
00440
00442 bool cpe_check_set_href(struct cpe_check *check, const char *new_href);
00443
00445 bool cpe_check_set_identifier(struct cpe_check *check, const char *new_identifier);
00446
00448 bool cpe_reference_set_href(struct cpe_reference *reference, const char *new_href);
00449
00451 bool cpe_reference_set_content(struct cpe_reference *reference, const char *new_content);
00452
00454 bool cpe_generator_set_product_name(struct cpe_generator *generator, const char *new_product_name);
00455
00457 bool cpe_generator_set_product_version(struct cpe_generator *generator, const char *new_product_version);
00458
00460 bool cpe_generator_set_schema_version(struct cpe_generator *generator, const char *new_schema_version);
00461
00463 bool cpe_generator_set_timestamp(struct cpe_generator *generator, const char *new_timestamp);
00464
00466 bool cpe_vendor_set_value(struct cpe_vendor *vendor, const char *new_value);
00467
00469 bool cpe_product_set_value(struct cpe_product *product, const char *new_value);
00470
00472 bool cpe_product_set_part(struct cpe_product *product, cpe_part_t new_part);
00473
00475 bool cpe_version_set_value(struct cpe_version *version, const char *new_value);
00476
00478 bool cpe_update_set_value(struct cpe_update *update, const char *new_value);
00479
00481 bool cpe_edition_set_value(struct cpe_edition *edition, const char *new_value);
00482
00484 bool cpe_language_set_value(struct cpe_language *language, const char *new_value);
00485
00486
00487
00488
00489
00491 bool cpe_item_add_reference(struct cpe_item *item, struct cpe_reference *new_reference);
00492
00494 bool cpe_item_add_check(struct cpe_item *item, struct cpe_check *new_check);
00495
00497 bool cpe_item_add_title(struct cpe_item *item, struct oscap_title *new_title);
00498
00500 bool cpe_item_add_note(struct cpe_item *item, struct oscap_title *new_title);
00501
00503 bool cpe_dict_model_add_vendor(struct cpe_dict_model *dict, struct cpe_vendor *new_vendor);
00504
00506 bool cpe_vendor_add_title(struct cpe_vendor *vendor, struct oscap_title *new_title);
00507
00509 bool cpe_vendor_add_product(struct cpe_vendor *vendor, struct cpe_product *new_product);
00510
00512 bool cpe_product_add_version(struct cpe_product *product, struct cpe_version *new_version);
00513
00515 bool cpe_version_add_update(struct cpe_version *version, struct cpe_update *new_update);
00516
00518 bool cpe_update_add_edition(struct cpe_update *update, struct cpe_edition *new_edition);
00519
00521 bool cpe_edition_add_language(struct cpe_edition *edition, struct cpe_language *new_language);
00522
00527 bool cpe_dict_model_add_xml(struct cpe_dict_model *model, struct xml_metadata *xml);
00528
00529
00530
00533
00534 void cpe_item_iterator_remove(struct cpe_item_iterator *it);
00535
00537 void cpe_reference_iterator_remove(struct cpe_reference_iterator *it);
00538
00540 void cpe_check_iterator_remove(struct cpe_check_iterator *it);
00541
00543 void cpe_vendor_iterator_remove(struct cpe_vendor_iterator *it);
00544
00546 void cpe_product_iterator_remove(struct cpe_product_iterator *it);
00547
00549 void cpe_version_iterator_remove(struct cpe_version_iterator *it);
00550
00552 void cpe_update_iterator_remove(struct cpe_update_iterator *it);
00553
00555 void cpe_edition_iterator_remove(struct cpe_edition_iterator *it);
00556
00558 void cpe_language_iterator_remove(struct cpe_language_iterator *it);
00559
00560
00571 struct cpe_item_iterator;
00572
00578 struct cpe_item *cpe_item_iterator_next(struct cpe_item_iterator *it);
00579
00585 bool cpe_item_iterator_has_more(struct cpe_item_iterator *it);
00586
00592 void cpe_item_iterator_free(struct cpe_item_iterator *it);
00593
00599 struct cpe_reference_iterator;
00600
00606 struct cpe_reference *cpe_reference_iterator_next(struct cpe_reference_iterator *it);
00607
00613 bool cpe_reference_iterator_has_more(struct cpe_reference_iterator *it);
00614
00620 void cpe_reference_iterator_free(struct cpe_reference_iterator *it);
00621
00627 struct cpe_check_iterator;
00628
00634 struct cpe_check *cpe_check_iterator_next(struct cpe_check_iterator *it);
00635
00641 bool cpe_check_iterator_has_more(struct cpe_check_iterator *it);
00642
00648 void cpe_check_iterator_free(struct cpe_check_iterator *it);
00649
00655 struct cpe_vendor_iterator;
00656
00662 struct cpe_vendor *cpe_vendor_iterator_next(struct cpe_vendor_iterator *it);
00663
00669 bool cpe_vendor_iterator_has_more(struct cpe_vendor_iterator *it);
00670
00676 void cpe_vendor_iterator_free(struct cpe_vendor_iterator *it);
00677
00683 struct cpe_product_iterator;
00684
00690 struct cpe_product *cpe_product_iterator_next(struct cpe_product_iterator *it);
00691
00697 bool cpe_product_iterator_has_more(struct cpe_product_iterator *it);
00698
00704 void cpe_product_iterator_free(struct cpe_product_iterator *it);
00705
00711 struct cpe_version_iterator;
00712
00718 struct cpe_version *cpe_version_iterator_next(struct cpe_version_iterator *it);
00719
00725 bool cpe_version_iterator_has_more(struct cpe_version_iterator *it);
00726
00732 void cpe_version_iterator_free(struct cpe_version_iterator *it);
00733
00739 struct cpe_update_iterator;
00740
00746 struct cpe_update *cpe_update_iterator_next(struct cpe_update_iterator *it);
00747
00753 bool cpe_update_iterator_has_more(struct cpe_update_iterator *it);
00754
00760 void cpe_update_iterator_free(struct cpe_update_iterator *it);
00761
00767 struct cpe_edition_iterator;
00768
00774 struct cpe_edition *cpe_edition_iterator_next(struct cpe_edition_iterator *it);
00775
00781 bool cpe_edition_iterator_has_more(struct cpe_edition_iterator *it);
00782
00788 void cpe_edition_iterator_free(struct cpe_edition_iterator *it);
00789
00795 struct cpe_language_iterator;
00796
00802 struct cpe_language *cpe_language_iterator_next(struct cpe_language_iterator *it);
00803
00809 bool cpe_language_iterator_has_more(struct cpe_language_iterator *it);
00810
00816 void cpe_language_iterator_free(struct cpe_language_iterator *it);
00817
00818
00821
00832 const char * cpe_dict_model_supported(void);
00833
00842 bool cpe_name_match_dict(struct cpe_name *cpe, struct cpe_dict_model *dict);
00843
00852 bool cpe_name_match_dict_str(const char *cpe, struct cpe_dict_model *dict);
00853
00854
00862 void cpe_dict_model_export(const struct cpe_dict_model *dict, const char *file);
00863
00871 struct cpe_dict_model *cpe_dict_model_import(const char *file);
00872
00877 #endif