Open SCAP Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Files | Functions
DS

Detailed Description

Data Structures

struct  ds_stream_index
 Contains information about one particular "<data-stream>" element in the datastream collection (also called SDS = source datastream). More...
 
struct  ds_sds_index
 Represents <data-stream-collection> element - the root element of each source datastream. More...
 
struct  ds_stream_index_iterator
 
struct  rds_report_request_index
 
struct  rds_asset_index
 
struct  rds_report_index
 
struct  rds_report_request_index_iterator
 
struct  rds_asset_index_iterator
 
struct  rds_report_index_iterator
 
struct  rds_index
 Represents <asset-report-collection> element - the root element of each result datastream in Asset Reporting Format = ARF. More...
 

Files

file  scap_ds.h
 Open-scap Data Stream interface.
 

Functions

int ds_sds_decompose (const char *input_file, const char *id, const char *xccdf_id, const char *target_dir, const char *target_filename)
 takes given source data stream and decomposes it into separate files More...
 
int ds_sds_decompose_custom (const char *input_file, const char *id, const char *target_dir, const char *container_name, const char *component_id, const char *target_filename)
 same as ds_sds_decompose but works with other components than just XCCDFs More...
 
int ds_sds_compose_from_xccdf (const char *xccdf_file, const char *target_datastream)
 takes given xccdf file and constructs a source datastream More...
 
int ds_sds_compose_add_component (const char *target_datastream, const char *datastream_id, const char *new_component, bool extended)
 append a new given component to the existing source datastream More...
 
int ds_rds_decompose (const char *input_file, const char *report_id, const char *request_id, const char *target_dir)
 
int ds_rds_create (const char *sds_file, const char *xccdf_result_file, const char **oval_result_files, const char *target_file)
 takes given source data stream and XCCDF result file and makes a result data stream More...
 
int ds_sds_index_select_checklist (struct ds_sds_index *s, const char **datastream_id, const char **component_id)
 chooses datastream and checklist id combination given the IDs More...
 
int ds_sds_index_select_checklist_by_benchmark_id (struct ds_sds_index *s, const char *benchmark_id, const char **datastream_id, const char **component_ref_id)
 chooses datastream and checklist component ref ID combination, given benchmark ID More...
 
struct rds_report_request_indexrds_report_request_index_new (void)
 
void rds_report_request_index_free (struct rds_report_request_index *s)
 
const char * rds_report_request_index_get_id (struct rds_report_request_index *s)
 
struct rds_asset_indexrds_asset_index_new (void)
 
void rds_asset_index_free (struct rds_asset_index *s)
 
const char * rds_asset_index_get_id (struct rds_asset_index *s)
 
void rds_asset_index_add_report_ref (struct rds_asset_index *s, struct rds_report_index *report)
 
struct rds_report_index_iteratorrds_asset_index_get_reports (struct rds_asset_index *s)
 
struct rds_report_indexrds_report_index_new (void)
 
void rds_report_index_free (struct rds_report_index *s)
 
const char * rds_report_index_get_id (struct rds_report_index *s)
 
void rds_report_index_set_request (struct rds_report_index *s, struct rds_report_request_index *request)
 
struct rds_report_request_indexrds_report_index_get_request (struct rds_report_index *s)
 
struct ds_stream_indexds_stream_index::ds_stream_index_new (void)
 
void ds_stream_index::ds_stream_index_free (struct ds_stream_index *s)
 
const char * ds_stream_index::ds_stream_index_get_id (struct ds_stream_index *s)
 Gets ID of the <data-stream> element the index represents.
 
const char * ds_stream_index::ds_stream_index_get_timestamp (struct ds_stream_index *s)
 Timestamp of creation OR modification of the <data-stream> element the index represents.
 
const char * ds_stream_index::ds_stream_index_get_version (struct ds_stream_index *s)
 scap-version of the the <data-stream> element the index represents.
 
struct oscap_string_iteratords_stream_index::ds_stream_index_get_checks (struct ds_stream_index *s)
 Retrieves iterator over all components inside the <checks> element.
 
struct oscap_string_iteratords_stream_index::ds_stream_index_get_checklists (struct ds_stream_index *s)
 Retrieves iterator over all components inside the <checklists> element.
 
struct oscap_string_iteratords_stream_index::ds_stream_index_get_dictionaries (struct ds_stream_index *s)
 Retrieves iterator over all components inside the <dictionaries> element.
 
struct oscap_string_iteratords_stream_index::ds_stream_index_get_extended_components (struct ds_stream_index *s)
 Retrieves iterator over all components inside the <extended-components> element.
 
struct ds_sds_indexds_sds_index::ds_sds_index_new (void)
 
void ds_sds_index::ds_sds_index_free (struct ds_sds_index *s)
 
struct ds_stream_indexds_sds_index::ds_sds_index_get_stream (struct ds_sds_index *s, const char *stream_id)
 retrieves a stream index by data-stream ID
 
struct ds_stream_index_iteratords_sds_index::ds_sds_index_get_streams (struct ds_sds_index *s)
 retrieves all streams indexed inside this structure
 
struct ds_sds_indexds_sds_index::ds_sds_index_import (const char *file)
 imports given source datastream and indexes it More...
 
struct ds_stream_indexds_stream_index_iterator::ds_stream_index_iterator_next (struct ds_stream_index_iterator *it)
 
bool ds_stream_index_iterator::ds_stream_index_iterator_has_more (struct ds_stream_index_iterator *it)
 
void ds_stream_index_iterator::ds_stream_index_iterator_free (struct ds_stream_index_iterator *it)
 
struct rds_report_request_indexrds_report_request_index_iterator::rds_report_request_index_iterator_next (struct rds_report_request_index_iterator *it)
 
bool rds_report_request_index_iterator::rds_report_request_index_iterator_has_more (struct rds_report_request_index_iterator *it)
 
void rds_report_request_index_iterator::rds_report_request_index_iterator_free (struct rds_report_request_index_iterator *it)
 
struct rds_asset_indexrds_asset_index_iterator::rds_asset_index_iterator_next (struct rds_asset_index_iterator *it)
 
bool rds_asset_index_iterator::rds_asset_index_iterator_has_more (struct rds_asset_index_iterator *it)
 
void rds_asset_index_iterator::rds_asset_index_iterator_free (struct rds_asset_index_iterator *it)
 
struct rds_report_indexrds_report_index_iterator::rds_report_index_iterator_next (struct rds_report_index_iterator *it)
 
bool rds_report_index_iterator::rds_report_index_iterator_has_more (struct rds_report_index_iterator *it)
 
void rds_report_index_iterator::rds_report_index_iterator_free (struct rds_report_index_iterator *it)
 
struct rds_indexrds_index::rds_index_new (void)
 
void rds_index::rds_index_free (struct rds_index *s)
 
struct
rds_report_request_index_iterator
rds_index::rds_index_get_report_requests (struct rds_index *s)
 
struct rds_asset_index_iteratorrds_index::rds_index_get_assets (struct rds_index *s)
 
struct rds_report_index_iteratorrds_index::rds_index_get_reports (struct rds_index *s)
 
struct rds_report_request_indexrds_index::rds_index_get_report_request (struct rds_index *rds, const char *id)
 
struct rds_asset_indexrds_index::rds_index_get_asset (struct rds_index *rds, const char *id)
 
struct rds_report_indexrds_index::rds_index_get_report (struct rds_index *rds, const char *id)
 
struct rds_indexrds_index::rds_index_import (const char *file)
 
int rds_index::rds_index_select_report (struct rds_index *s, const char **report_id)
 

Function Documentation

int ds_rds_create ( const char *  sds_file,
const char *  xccdf_result_file,
const char **  oval_result_files,
const char *  target_file 
)

takes given source data stream and XCCDF result file and makes a result data stream

Parameters
sds_filePath to the source data stream file that was used to generate the result XCCDF
xccdf_result_fileContains xccdf:TestResult(s) and the embedded Benchmark (optionally). The embedded Benchmark (source data) will not be included in the result data stream, we will instead bundle the source data stream.
oval_result_filesNULL terminated list of paths to OVAL result files that should be bundled in the result data stream.
target_filePath to the file where the result data stream will be stored
Returns
0 if no errors were encountered -1 in case of errors
int ds_rds_decompose ( const char *  input_file,
const char *  report_id,
const char *  request_id,
const char *  target_dir 
)
Deprecated:
This function has been deprecated. Make a use of ds_rds_session instread. This function may be dropped from later versions of the library.
int ds_sds_compose_add_component ( const char *  target_datastream,
const char *  datastream_id,
const char *  new_component,
bool  extended 
)

append a new given component to the existing source datastream

Parameters
target_datastreamPath of the existing source datastream into which the new component shall be added.
datastream_idID of the datastream into which the component shall be added. Null value indicates the very first datastream in the collection.
new_componentPath to the new component file (XCCDF, OVAL, or CPE Dictionary).
Returns
0 in case of success
int ds_sds_compose_from_xccdf ( const char *  xccdf_file,
const char *  target_datastream 
)

takes given xccdf file and constructs a source datastream

Parameters
xccdf_filePath to the XCCDF file that should be included in the datastream (including its dependencies).
target_datastreamID of the datastream that should contain the XCCDF file. It will be the only datastream in the resulting data-stream-collection.
Returns
0 if no errors were encountered -1 in case of errors
int ds_sds_decompose ( const char *  input_file,
const char *  id,
const char *  xccdf_id,
const char *  target_dir,
const char *  target_filename 
)

takes given source data stream and decomposes it into separate files

This function bases the output on an XCCDF embedded in the "checklists" element in the datastream. Most of the times this is what everybody wants.

If you want to decompose just an OVAL file or some other custom behavior, see ds_sds_decompose_custom.

Parameters
input_fileFile containing a datastream collection we want to decompose parts from
idID of a datastream we want to use from the given datastream collection. The first encountered datastream is used if id is NULL.
xccdf_idID of the component containing the XCCDF we want to process. The first encountered XCCDF component is used if id is NULL.
target_dirDirectory where the resulting files will be stored, names of the files are deduced using component-refs inside the datastream.
target_filenameBase name of the target XCCDF file, if NULL is given the filename will be deduced from the contents of the datastream.
Returns
0 if no errors were encountered -1 in case of errors
Deprecated:
This function has been deprecated. Make a use of ds_sds_session instread. This function may be dropped from later versions of the library.
int ds_sds_decompose_custom ( const char *  input_file,
const char *  id,
const char *  target_dir,
const char *  container_name,
const char *  component_id,
const char *  target_filename 
)

same as ds_sds_decompose but works with other components than just XCCDFs

Parameters
containercomponent reference container such as "checklists", "checks", ...
component_idid of the component you want to start the export from. If NULL, all components refs inside given container will be exported.
target_filenameBase name of the target file, if NULL is given the filename will be deduced from the contents of the datastream.
See Also
ds_sds_decompose
Deprecated:
This function has been deprecated. Make a use of ds_sds_session instread. This function may be dropped from later versions of the library.
void ds_sds_index_free ( struct ds_sds_index s)
struct ds_sds_index * ds_sds_index_import ( const char *  file)

imports given source datastream and indexes it

Deprecated:
This function has been deprecated. Make a use of ds_sds_session instread. This function may be dropped from later versions of the library.
struct ds_sds_index * ds_sds_index_new ( void  )
int ds_sds_index_select_checklist ( struct ds_sds_index s,
const char **  datastream_id,
const char **  component_id 
)

chooses datastream and checklist id combination given the IDs

Parameters
datastream_idhas to point to an allocated char*, selected datastream ID will be filled into it
component_idhas to point to an allocated char*, selected xccdf ID will be filled into it

datastream_id and component_id must not point to the same memory! However, the pointers pointed to may be NULL (which means any ID will do).

component_id is actually a component-ref ID, the reason is that we need the component-ref to know which other components are in the catalog and thus needed when splitting.

int ds_sds_index_select_checklist_by_benchmark_id ( struct ds_sds_index s,
const char *  benchmark_id,
const char **  datastream_id,
const char **  component_ref_id 
)

chooses datastream and checklist component ref ID combination, given benchmark ID

Parameters
benchmark_idWhich XCCDF Benchmark ID are we looking for? Parameters are similar to ds_sds_index_select_checklist, except for benchmark_id.
See Also
ds_sds_index_select_checklist

This function looks through to datastream index to find the first component-ref (top-down) which satisfies the following condition: "it does point to a component which contains XCCDF Benchmark with id exactly the same as given benchmark_id".

Please note that datastream_id AND component_ref_id are pointers to pointers and they will be overwritten if 0 is returned. The values are never used, unlike with ds_sds_index_select_checklist.

void ds_stream_index_free ( struct ds_stream_index s)
void ds_stream_index_iterator_free ( struct ds_stream_index_iterator it)
bool ds_stream_index_iterator_has_more ( struct ds_stream_index_iterator it)
struct ds_stream_index * ds_stream_index_iterator_next ( struct ds_stream_index_iterator it)
struct ds_stream_index * ds_stream_index_new ( void  )
void rds_asset_index_iterator_free ( struct rds_asset_index_iterator it)
bool rds_asset_index_iterator_has_more ( struct rds_asset_index_iterator it)
struct rds_asset_index * rds_asset_index_iterator_next ( struct rds_asset_index_iterator it)
void rds_index_free ( struct rds_index s)
struct rds_asset_index * rds_index_get_asset ( struct rds_index rds,
const char *  id 
)
struct rds_asset_index_iterator * rds_index_get_assets ( struct rds_index s)
struct rds_report_index * rds_index_get_report ( struct rds_index rds,
const char *  id 
)
struct rds_report_request_index * rds_index_get_report_request ( struct rds_index rds,
const char *  id 
)
struct rds_report_request_index_iterator * rds_index_get_report_requests ( struct rds_index s)
struct rds_report_index_iterator * rds_index_get_reports ( struct rds_index s)
struct rds_index * rds_index_import ( const char *  file)
Deprecated:
This function has been deprecated. Make a use of ds_rds_session instread. This function may be dropped from later versions of the library.
struct rds_index * rds_index_new ( void  )
int rds_index_select_report ( struct rds_index s,
const char **  report_id 
)
void rds_report_index_iterator_free ( struct rds_report_index_iterator it)
bool rds_report_index_iterator_has_more ( struct rds_report_index_iterator it)
struct rds_report_index * rds_report_index_iterator_next ( struct rds_report_index_iterator it)
void rds_report_request_index_iterator_free ( struct rds_report_request_index_iterator it)
bool rds_report_request_index_iterator_has_more ( struct rds_report_request_index_iterator it)
struct rds_report_request_index * rds_report_request_index_iterator_next ( struct rds_report_request_index_iterator it)