cpe_name.h File Reference

Interface to Common Platform Enumeration (CPE) URI. More...

#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_namecpe_name_new (const char *cpe)
 Create a new CPE structure from string cpe.
struct cpe_namecpe_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.


Detailed Description

Interface to Common Platform Enumeration (CPE) URI.

See more details at http://nvd.nist.gov/cpe.cfm


Typedef Documentation

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


Generated on Tue Nov 14 12:18:54 2017 for Open SCAP Library by  doxygen 1.5.6