Source code for pycti.utils.opencti_stix2_identifier

import uuid

from stix2.canonicalization.Canonicalize import canonicalize


[docs] def external_reference_generate_id(url=None, source_name=None, external_id=None): """Generate a STIX ID for an external reference. :param url: URL of the external reference :type url: str :param source_name: Source name of the external reference :type source_name: str :param external_id: External ID of the reference :type external_id: str :return: Generated STIX ID or None if insufficient data :rtype: str or None """ if url is not None: data = {"url": url} elif source_name is not None and external_id is not None: data = {"source_name": source_name, "external_id": external_id} else: return None data = canonicalize(data, utf8=False) generated_id = str( uuid.uuid5(uuid.UUID("00abedb4-aa42-466c-9c01-fed23315a9b7"), data) ) return "external-reference--" + generated_id
[docs] def kill_chain_phase_generate_id(phase_name, kill_chain_name): """Generate a STIX ID for a kill chain phase. :param phase_name: Name of the phase :type phase_name: str :param kill_chain_name: Name of the kill chain :type kill_chain_name: str :return: Generated STIX ID :rtype: str """ data = {"phase_name": phase_name, "kill_chain_name": kill_chain_name} data = canonicalize(data, utf8=False) generated_id = str( uuid.uuid5(uuid.UUID("00abedb4-aa42-466c-9c01-fed23315a9b7"), data) ) return "kill-chain-phase--" + generated_id