ssg.id_translate module

Common functions for processing ID Translations in SSG

class ssg.id_translate.IDTranslator(content_id)[source]

Bases: object

IDTranslator is a class designed to handle the mapping of meaningful, human-readable names to IDs in the formats required by the SCAP checking systems, such as OVAL and OCIL.

Attributes:

content_id (str): The content identifier used in generating IDs.

generate_id(tagname, name)[source]

Generates a unique identifier string based on the provided tag name and name.

Args:

tagname (str): The tag name to be used in the identifier. name (str): The name to be used in the identifier.

Returns:
str: A unique identifier string in the format

“<namespace_prefix>:<content_id>-<name>:<tagname_abbrev>:1”.

translate(tree, store_defname=False)[source]

Translates the IDs of elements in an XML tree to new identifiers.

Args:

tree (ElementTree.Element): The XML tree to be processed. store_defname (bool, optional): If True, stores the old name in the metadata for OVAL

definitions. Defaults to False.

Returns:

ElementTree.Element: The processed XML tree with updated IDs.

The function iterates through each element in the provided XML tree and performs the following actions based on the element’s tag and attributes: - If the element has an “id” attribute, it generates a new ID and sets it. - If store_defname is True and the element is an OVAL definition, it stores the old ID

in the metadata.

  • For specific tags like “filter”, “var_ref”, and “object_reference”, it updates the text content with a new ID.

  • For attributes that match keys in OVALREFATTR_TO_TAG or OCILREFATTR_TO_TAG, it updates the attribute value with a new ID.

  • For the “test_action_ref” tag, it updates the text content with a new ID.

translate_oval_document(oval_document, store_defname=False)[source]

Translates and validates an OVAL document.

This method translates the IDs in the given OVAL document and validates its references.

Args:

oval_document: The OVAL document to be translated and validated. store_defname (bool, optional): If True, stores the definition name during

translation. Defaults to False.

Returns:

The translated and validated OVAL document.