Open SCAP Library
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
cpelang_priv.c File Reference

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

#include <libxml/xmlreader.h>
#include <libxml/xmlwriter.h>
#include <libxml/tree.h>
#include <string.h>
#include "public/cpe_lang.h"
#include "cpelang_priv.h"
#include "common/util.h"
#include "common/list.h"
#include "common/text_priv.h"
#include "common/elements.h"
#include "common/_error.h"
#include "common/xmlns_priv.h"
#include "common/xmltext_priv.h"
#include "source/oscap_source_priv.h"
#include "source/public/oscap_source.h"
Include dependency graph for cpelang_priv.c:

Data Structures

struct  cpe_lang_model
 CPE platform specification. More...
 
struct  cpe_platform
 Single platform representation in CPE language. More...
 

Macros

#define TAG_PLATFORM_SPEC_STR   BAD_CAST "platform-specification"
 
#define TAG_PLATFORM_STR   BAD_CAST "platform"
 
#define TAG_LOGICAL_TEST_STR   BAD_CAST "logical-test"
 
#define TAG_FACT_REF_STR   BAD_CAST "fact-ref"
 
#define TAG_CHECK_FACT_REF_STR   BAD_CAST "check-fact-ref"
 
#define TAG_REMARK_STR   BAD_CAST "remark"
 
#define ATTR_TITLE_STR   BAD_CAST "title"
 
#define ATTR_NAME_STR   BAD_CAST "name"
 
#define ATTR_OPERATOR_STR   BAD_CAST "operator"
 
#define ATTR_NEGATE_STR   BAD_CAST "negate"
 
#define ATTR_ID_STR   BAD_CAST "id"
 
#define ATTR_HREF_STR   BAD_CAST "href"
 
#define ATTR_SYSTEM_STR   BAD_CAST "system"
 
#define ATTR_ID_REF_STR   BAD_CAST "id-ref"
 
#define VAL_AND_STR   BAD_CAST "AND"
 
#define VAL_OR_STR   BAD_CAST "OR"
 
#define VAL_FALSE_STR   BAD_CAST "false"
 
#define VAL_TRUE_STR   BAD_CAST "true"
 

Functions

const struct cpe_testexprcpe_testexpr_get_next (const struct cpe_testexpr *expr)
 
struct cpe_testexprcpe_testexpr_new ()
 
struct cpe_testexprcpe_testexpr_clone (struct cpe_testexpr *old_expr)
 
struct cpe_lang_modelcpe_lang_model_new ()
 
struct cpe_platformcpe_platform_new ()
 
struct cpe_lang_modelcpe_lang_model_import_source (struct oscap_source *source)
 
struct cpe_lang_modelcpe_lang_model_parse (xmlTextReaderPtr reader)
 Parse function for CPE Lang model.
 
struct cpe_platformcpe_platform_parse (xmlTextReaderPtr reader)
 Parse CPE platform structure.
 
struct cpe_testexprcpe_testexpr_parse (xmlTextReaderPtr reader)
 Parse CPE test expression structure.
 
void cpe_lang_model_export_xml (const struct cpe_lang_model *spec, const char *file)
 Function for export CPE language model to XML.
 
void cpe_lang_export (const struct cpe_lang_model *spec, xmlTextWriterPtr writer)
 Function for export CPE language top element.
 
void cpe_platform_export (const struct cpe_platform *platform, xmlTextWriterPtr writer)
 Function for export CPE platform element.
 
void cpe_testexpr_export (const struct cpe_testexpr *expr, xmlTextWriterPtr writer)
 Function for export CPE test expression element.
 
void cpe_lang_model_free (struct cpe_lang_model *platformspec)
 
void cpe_platform_free (struct cpe_platform *platform)
 
void cpe_testexpr_free (struct cpe_testexpr *expr)
 
struct cpe_testexpr_iteratorcpe_testexpr_get_meta_expr (const struct cpe_testexpr *expr)
 
const struct cpe_namecpe_testexpr_get_meta_cpe (const struct cpe_testexpr *expr)
 
const char * cpe_testexpr_get_meta_check_system (const struct cpe_testexpr *expr)
 
const char * cpe_testexpr_get_meta_check_href (const struct cpe_testexpr *expr)
 
const char * cpe_testexpr_get_meta_check_id (const struct cpe_testexpr *expr)
 
bool cpe_testexpr_set_oper (struct cpe_testexpr *expr, cpe_lang_oper_t oper)
 
bool cpe_testexpr_set_name (struct cpe_testexpr *expr, struct cpe_name *name)
 
bool cpe_testexpr_add_subexpression (struct cpe_testexpr *expr, struct cpe_testexpr *sub)
 
bool cpe_lang_model_add_platform (struct cpe_lang_model *lang, struct cpe_platform *platform)
 
void cpe_platform_iterator_remove (struct cpe_platform_iterator *it, struct cpe_lang_model *parent)
 
bool cpe_platform_set_expr (struct cpe_platform *platform, struct cpe_testexpr *expr)
 
bool cpe_lang_model_set_origin_file (struct cpe_lang_model *lang_model, const char *origin_file)
 Sets the origin file hint.
 
const char * cpe_lang_model_get_origin_file (const struct cpe_lang_model *lang_model)
 Gets the file the CPE dict model was loaded from This is necessary to figure out the full OVAL file path for applicability testing.
 

Detailed Description

Interface to Common Platform Enumeration (CPE) Language.

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

Function Documentation

◆ cpe_lang_export()

void cpe_lang_export ( const struct cpe_lang_model * spec,
xmlTextWriterPtr writer )

Function for export CPE language top element.

Parameters
writerxmlTextWriterPtr structure representing XML model
specCPE language model structure

◆ cpe_lang_model_export_xml()

void cpe_lang_model_export_xml ( const struct cpe_lang_model * spec,
const char * file )

Function for export CPE language model to XML.

Parameters
specCPE language model structure
filefilename

◆ cpe_lang_model_get_origin_file()

const char * cpe_lang_model_get_origin_file ( const struct cpe_lang_model * lang_model)

Gets the file the CPE dict model was loaded from This is necessary to figure out the full OVAL file path for applicability testing.

We can't do applicability here in the CPE module because that would create awful interdependencies.

◆ cpe_lang_model_parse()

struct cpe_lang_model * cpe_lang_model_parse ( xmlTextReaderPtr reader)

Parse function for CPE Lang model.

Parameters
readerxmlTextReaderPtr structure representing XML model

◆ cpe_lang_model_set_origin_file()

bool cpe_lang_model_set_origin_file ( struct cpe_lang_model * lang_model,
const char * origin_file )

Sets the origin file hint.

See also
cpe_lang_model_get_origin_file

◆ cpe_platform_export()

void cpe_platform_export ( const struct cpe_platform * platform,
xmlTextWriterPtr writer )

Function for export CPE platform element.

Parameters
writerxmlTextWriterPtr structure representing XML model
platformCPE platform structure

◆ cpe_platform_parse()

struct cpe_platform * cpe_platform_parse ( xmlTextReaderPtr reader)

Parse CPE platform structure.

Parameters
readerxmlTextReaderPtr structure representing XML model
Returns
cpe_platform structure with CPE platform item

◆ cpe_testexpr_export()

void cpe_testexpr_export ( const struct cpe_testexpr * expr,
xmlTextWriterPtr writer )

Function for export CPE test expression element.

Parameters
writerxmlTextWriterPtr structure representing XML model
exprCPE test expression structure

◆ cpe_testexpr_parse()

struct cpe_testexpr * cpe_testexpr_parse ( xmlTextReaderPtr reader)

Parse CPE test expression structure.

Parameters
readerxmlTextReaderPtr structure representing XML model
Returns
cpe_testexpr structure with CPE test expression item