Open SCAP Library

Data Structures | Macros | Functions
cve_priv.c File Reference

Common Vulnerability and Exposure dictionary. More...

`#include <string.h>`
`#include <libxml/xmlreader.h>`
`#include <libxml/xmlwriter.h>`
`#include "public/cve_nvd.h"`
`#include "cve_priv.h"`
`#include "common/list.h"`
`#include "common/_error.h"`
`#include "common/xmltext_priv.h"`
`#include "common/elements.h"`
`#include "CPE/cpelang_priv.h"`
`#include "CVSS/cvss_priv.h"`
`#include "CVSS/public/cvss_score.h"`
`#include "source/oscap_source_priv.h"`
`#include "source/public/oscap_source.h"`

## Data Structures
struct | cve_model
| Structure holding CVE model. More...
struct | cve_reference
| Structure holding CVE reference data. More...
struct | cve_summary
| Structure holding CVE summary data. More...
struct | cve_product
| Structure holding CVE product data. More...
struct | cwe_entry
| Structure holding CWE data. More...
struct | cve_configuration
| Structure CVE vulnerable configuration data. More...
struct | cve_entry
| Structure holding CVE entry data. More...

## Macros
#define | TAG_NVD_STR BAD_CAST "nvd"
#define | ATTR_XML_LANG_STR BAD_CAST "xml:lang"
#define | TAG_CVE_STR BAD_CAST "entry"
#define | TAG_DISCOVERED_DATETIME_STR BAD_CAST "discovered-datetime"
#define | TAG_PUBLISHED_DATETIME_STR BAD_CAST "published-datetime"
#define | TAG_LAST_MODIFIED_DATETIME_STR BAD_CAST "last-modified-datetime"
#define | TAG_CWE_STR BAD_CAST "cwe"
#define | TAG_SUMMARY_STR BAD_CAST "summary"
#define | TAG_VULNERABLE_CONFIGURATION_STR BAD_CAST "vulnerable-configuration"
#define | TAG_VULNERABLE_SOFTWARE_LIST_STR BAD_CAST "vulnerable-software-list"
#define | TAG_SECURITY_PROTECTION_STR BAD_CAST "security-protection"
#define | TAG_PRODUCT_STR BAD_CAST "product"
#define | ATTR_CVE_ID_STR BAD_CAST "id"
#define | ATTR_VULNERABLE_CONFIGURATION_ID_STR BAD_CAST "id"
#define | TAG_CVE_ID_STR BAD_CAST "cve-id"
#define | TAG_SOURCE_STR BAD_CAST "source"
#define | TAG_CVSS_STR BAD_CAST "cvss"
#define | TAG_CWE_STR BAD_CAST "cwe"
#define | ATTR_CWEID_STR BAD_CAST "id"
#define | TAG_REFERENCES_STR BAD_CAST "references"
#define | TAG_REFERENCE_STR BAD_CAST "reference"
#define | TAG_REFERENCE_SOURCE_STR BAD_CAST "source"
#define | ATTR_REFERENCE_TYPE_STR BAD_CAST "reference_type"
#define | ATTR_REFERENCE_HREF_STR BAD_CAST "href"
#define | NS_VULN_STR BAD_CAST "vuln"
#define | TAG_ASSESSMENT_CHECK_STR BAD_CAST "assessment_check"
#define | TAG_SCANNER_STR BAD_CAST "scanner"
#define | TAG_DEFINITION_STR BAD_CAST "definition"
#define | CVE_NS BAD_CAST "http://scap.nist.gov/schema/vulnerability/0.4"
#define | FEED_NS BAD_CAST "http://scap.nist.gov/schema/feed/vulnerability/2.0"
#define | FEED_NS_LOCATION BAD_CAST "http://scap.nist.gov/schema/feed/vulnerability/2.0 http://nvd.nist.gov/schema/nvd-cve-feed_2.0.xsd"

## Functions
const struct cvss_impact * | cve_entry_get_cvss (const struct cve_entry *item)
const struct cpe_testexpr * | cve_configuration_get_expr (const struct cve_configuration *item)
struct cve_entry * | cve_entry_new ()
struct cve_entry * | cve_entry_clone (struct cve_entry *old_entry)
struct cve_configuration * | cve_configuration_new ()
struct cve_configuration * | cve_configuration_clone (struct cve_configuration *old_conf)
struct cwe_entry * | cwe_entry_new ()
struct cwe_entry * | cwe_entry_clone (struct cwe_entry *old_entry)
struct cve_product * | cve_product_new ()
struct cve_product * | cve_product_clone (struct cve_product *old_product)
struct cve_summary * | cve_summary_new ()
struct cve_summary * | cve_summary_clone (struct cve_summary *old_sum)
struct cve_reference * | cve_reference_new ()
struct cve_reference * | cve_reference_clone (struct cve_reference *old_ref)
struct cve_model * | cve_model_new ()
struct cve_model * | cve_model_clone (struct cve_model *old_model)
struct cve_model * | cve_model_parse_xml (const char *file)
| Parse CVE model from XML (private function) More...
struct cve_model * | cve_model_parse (xmlTextReaderPtr reader)
| Parse CVE model. More...
struct cve_entry * | cve_entry_parse (xmlTextReaderPtr reader)
| Parse CVE entry. More...
void | cve_model_export_xml (struct cve_model *cve, const char *file)
| Export CVE model to XML file. More...
void | cve_export (const struct cve_model *cve, xmlTextWriterPtr writer)
| Export CVE model to XML file. More...
void | cve_reference_export (const struct cve_reference *refer, xmlTextWriterPtr writer)
| Export CVE reference to XML file. More...
void | cve_summary_export (const struct cve_summary *sum, xmlTextWriterPtr writer)
| Export CVE summary to XML file. More...
void | cve_entry_export (const struct cve_entry *entry, xmlTextWriterPtr writer)
| Export CVE entry to XML file. More...
void | cve_summary_free (struct cve_summary *summary)
void | cve_model_free (struct cve_model *cve_model)
void | cve_configuration_free (struct cve_configuration *conf)
void | cve_product_free (struct cve_product *product)
void | cve_reference_free (struct cve_reference *ref)
void | cwe_entry_free (struct cwe_entry *entry)
void | cve_entry_free (struct cve_entry *entry)

## Detailed Description

Common Vulnerability and Exposure dictionary.

See details at: http://cve.mitre.org/ http://nvd.nist.gov/download.cfm

## Function Documentation

## ◆ cve_entry_export()

void cve_entry_export | ( | const struct cve_entry * | entry,
|  | xmlTextWriterPtr | writer
| ) |  |

Export CVE entry to XML file.

Parameters

  entry | CVE entry
  writer | XML Text Writer representing XML model

## ◆ cve_entry_parse()

struct cve_entry* cve_entry_parse | ( | xmlTextReaderPtr | reader | ) |

Parse CVE entry.

Parameters

  reader | XML Text Reader representing XML model

Returns
  parsed CVE entry

## ◆ cve_export()

void cve_export | ( | const struct cve_model * | cve,
|  | xmlTextWriterPtr | writer
| ) |  |

Export CVE model to XML file.

Parameters

  cve | CVE model
  writer | XML Text Writer representing XML model

## ◆ cve_model_export_xml()

void cve_model_export_xml | ( | struct cve_model * | cve,
|  | const char * | file
| ) |  |

Export CVE model to XML file.

Parameters

  cve | CVE model
  file | OSCAP export target

## ◆ cve_model_parse()

struct cve_model* cve_model_parse | ( | xmlTextReaderPtr | reader | ) |

Parse CVE model.

Parameters

  reader | XML Text Reader representing XML model

Returns
  parsed CVE mdoel

## ◆ cve_model_parse_xml()

struct cve_model* cve_model_parse_xml | ( | const char * | file | ) |

Parse CVE model from XML (private function)

Parameters

  file | OSCAP import source

Returns
  new CVE model

## ◆ cve_reference_export()

void cve_reference_export | ( | const struct cve_reference * | refer,
|  | xmlTextWriterPtr | writer
| ) |  |

Export CVE reference to XML file.

Parameters

  refer | CVE reference
  writer | XML Text Writer representing XML model

## ◆ cve_summary_export()

void cve_summary_export | ( | const struct cve_summary * | sum,
|  | xmlTextWriterPtr | writer
| ) |  |

Export CVE summary to XML file.

Parameters

  sum | CVE summary
  writer | XML Text Writer representing XML model