#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
Go to the source code of this file.
Typedefs | |
typedef bool *(* | cpe_check_fn )(const char *, const char *, const char *, void *) |
Shared callback definition used to evaluate checks to perform applicability tests. | |
typedef bool *(* | cpe_dict_fn )(const struct cpe_name *, void *) |
Shared callback definition used to match CPE names to perform applicability tests. | |
Enumerations | |
enum | cpe_part_t { CPE_PART_NONE, CPE_PART_HW, CPE_PART_OS, CPE_PART_APP } |
enumeration of possible CPE parts More... | |
enum | cpe_format_t { CPE_FORMAT_UNKNOWN, CPE_FORMAT_URI, CPE_FORMAT_STRING, CPE_FORMAT_WFN } |
Functions | |
struct cpe_name * | cpe_name_new (const char *cpe) |
Create a new CPE structure from string cpe. | |
struct cpe_name * | cpe_name_clone (struct cpe_name *old_name) |
Clone CPE Name. | |
void | cpe_name_free (struct cpe_name *cpe) |
Destructor. | |
Getters | |
Return value is pointer to structure's member.
Do not free unless you null the pointer in the structure. Use remove function otherwise. | |
cpe_format_t | cpe_name_get_format (const struct cpe_name *cpe) |
Get how the CPE name was loaded and how it should be saved cpe_name. | |
cpe_part_t | cpe_name_get_part (const struct cpe_name *cpe) |
Get CPE name part type field. | |
const char * | cpe_name_get_vendor (const struct cpe_name *cpe) |
Get CPE name vendor field. | |
const char * | cpe_name_get_product (const struct cpe_name *cpe) |
Get CPE name product field. | |
const char * | cpe_name_get_version (const struct cpe_name *cpe) |
Get CPE name version field. | |
const char * | cpe_name_get_update (const struct cpe_name *cpe) |
Get CPE name update field. | |
const char * | cpe_name_get_edition (const struct cpe_name *cpe) |
Get CPE name edition field. | |
const char * | cpe_name_get_language (const struct cpe_name *cpe) |
Get CPE name language field. | |
const char * | cpe_name_get_sw_edition (const struct cpe_name *cpe) |
Get CPE name sw_edition field. | |
const char * | cpe_name_get_target_sw (const struct cpe_name *cpe) |
Get CPE name target_sw field. | |
const char * | cpe_name_get_target_hw (const struct cpe_name *cpe) |
Get CPE name target_hw field. | |
const char * | cpe_name_get_other (const struct cpe_name *cpe) |
Get CPE name other field. | |
char * | cpe_name_get_as_format (const struct cpe_name *cpe, cpe_format_t format) |
Return CPE URI as a new string in specified format. | |
char * | cpe_name_get_as_str (const struct cpe_name *cpe) |
Return CPE URI as a new string in the format in which it was loaded. | |
Setters | |
For lists use add functions.
Parameters of set functions are duplicated in memory and need to be freed by caller. | |
bool | cpe_name_set_format (struct cpe_name *cpe, cpe_format_t newval) |
Set how the CPE name was loaded and how it should be saved cpe_name. | |
bool | cpe_name_set_part (struct cpe_name *cpe, cpe_part_t newval) |
Set CPE name part type field. | |
bool | cpe_name_set_vendor (struct cpe_name *cpe, const char *newval) |
Set CPE name vendor field. | |
bool | cpe_name_set_product (struct cpe_name *cpe, const char *newval) |
Set CPE name product field. | |
bool | cpe_name_set_version (struct cpe_name *cpe, const char *newval) |
Set CPE name version field. | |
bool | cpe_name_set_update (struct cpe_name *cpe, const char *newval) |
Set CPE name update field. | |
bool | cpe_name_set_edition (struct cpe_name *cpe, const char *newval) |
Set CPE name edition field. | |
bool | cpe_name_set_language (struct cpe_name *cpe, const char *newval) |
Set CPE name language field. | |
bool | cpe_name_set_sw_edition (struct cpe_name *cpe, const char *newval) |
Set CPE name sw_edition field. | |
bool | cpe_name_set_target_sw (struct cpe_name *cpe, const char *newval) |
Set CPE name target_sw field. | |
bool | cpe_name_set_target_hw (struct cpe_name *cpe, const char *newval) |
Set CPE name target_hw field. | |
bool | cpe_name_set_other (struct cpe_name *cpe, const char *newval) |
Set CPE name other field. | |
Evaluators | |
bool | cpe_name_match_one (const struct cpe_name *cpe, const struct cpe_name *against) |
Check if candidate CPE cpe matches CPE against according to CPE specification v 2.1. | |
bool | cpe_name_match_cpes (const struct cpe_name *name, size_t n, struct cpe_name **namelist) |
Check if CPE name matches any CPE in namelist. | |
int | cpe_name_write (const struct cpe_name *cpe, FILE *f) |
Write CPE URI cpe to file a descriptor f cpe_name. | |
cpe_format_t | cpe_name_get_format_of_str (const char *str) |
Looks at given string and returns format it is in. | |
bool | cpe_name_check (const char *str) |
Checks whether str is valid CPE string (in any supported format). | |
int | cpe_name_match_strs (const char *candidate, size_t n, char **targets) |
Match CPE URI candidate against list of n CPE URIs given by targets. | |
const char * | cpe_name_supported (void) |
Get supported version of CPE uri XML. |
See more details at http://nvd.nist.gov/cpe.cfm
typedef bool*(* cpe_check_fn)(const char *, const char *, const char *, void *) |
Shared callback definition used to evaluate checks to perform applicability tests.
first arg = system second arg = href third arg = check name / id fourth arg = arbitrary pointer / user data
returns true = applicable, false = not applicable
typedef bool*(* cpe_dict_fn)(const struct cpe_name *, void *) |
Shared callback definition used to match CPE names to perform applicability tests.
first argument = cpe name to match second argument = arbitrary pointer / user data returns true = matched to existing applicable name, false = not matched/not applicable