Open SCAP Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
cve_priv.c File Reference

Detailed Description

Common Vulnerability and Exposure dictionary.

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

#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

struct cvss_impactcve_entry_get_cvss (const struct cve_entry *item)
 
struct cpe_testexprcve_configuration_get_expr (const struct cve_configuration *item)
 
struct cve_entrycve_entry_new ()
 
struct cve_entrycve_entry_clone (struct cve_entry *old_entry)
 
struct cve_configurationcve_configuration_new ()
 
struct cve_configurationcve_configuration_clone (struct cve_configuration *old_conf)
 
struct cwe_entrycwe_entry_new ()
 
struct cwe_entrycwe_entry_clone (struct cwe_entry *old_entry)
 
struct cve_productcve_product_new ()
 
struct cve_productcve_product_clone (struct cve_product *old_product)
 
struct cve_summarycve_summary_new ()
 
struct cve_summarycve_summary_clone (struct cve_summary *old_sum)
 
struct cve_referencecve_reference_new ()
 
struct cve_referencecve_reference_clone (struct cve_reference *old_ref)
 
struct cve_modelcve_model_new ()
 
struct cve_modelcve_model_clone (struct cve_model *old_model)
 
struct cve_modelcve_model_parse_xml (const char *file)
 Parse CVE model from XML (private function) More...
 
struct cve_modelcve_model_parse (xmlTextReaderPtr reader)
 Parse CVE model. More...
 
struct cve_entrycve_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)
 

Function Documentation

void cve_entry_export ( const struct cve_entry entry,
xmlTextWriterPtr  writer 
)

Export CVE entry to XML file.

Parameters
entryCVE entry
writerXML Text Writer representing XML model
struct cve_entry* cve_entry_parse ( xmlTextReaderPtr  reader)

Parse CVE entry.

Parameters
readerXML Text Reader representing XML model
Returns
parsed CVE entry
void cve_export ( const struct cve_model cve,
xmlTextWriterPtr  writer 
)

Export CVE model to XML file.

Parameters
cveCVE model
writerXML Text Writer representing XML model
void cve_model_export_xml ( struct cve_model cve,
const char *  file 
)

Export CVE model to XML file.

Parameters
cveCVE model
fileOSCAP export target
struct cve_model* cve_model_parse ( xmlTextReaderPtr  reader)

Parse CVE model.

Parameters
readerXML Text Reader representing XML model
Returns
parsed CVE mdoel
struct cve_model* cve_model_parse_xml ( const char *  file)

Parse CVE model from XML (private function)

Parameters
fileOSCAP import source
Returns
new CVE model
void cve_reference_export ( const struct cve_reference refer,
xmlTextWriterPtr  writer 
)

Export CVE reference to XML file.

Parameters
referCVE reference
writerXML Text Writer representing XML model
void cve_summary_export ( const struct cve_summary sum,
xmlTextWriterPtr  writer 
)

Export CVE summary to XML file.

Parameters
sumCVE summary
writerXML Text Writer representing XML model