diff --git a/stix2/equivalence/object/__init__.py b/stix2/equivalence/object/__init__.py index ec6cc42..0225788 100644 --- a/stix2/equivalence/object/__init__.py +++ b/stix2/equivalence/object/__init__.py @@ -4,6 +4,7 @@ import time from ...datastore import Filter from ...utils import STIXdatetime, parse_into_datetime +from ..pattern import equivalent_patterns logger = logging.getLogger(__name__) @@ -211,8 +212,7 @@ def custom_pattern_based(pattern1, pattern2): float: Number between 0.0 and 1.0 depending on match criteria. """ - logger.warning("Indicator pattern equivalence is not fully defined; will default to zero if not completely identical") - return exact_match(pattern1, pattern2) # TODO: Implement pattern based equivalence + return equivalent_patterns(pattern1, pattern2) def partial_external_reference_based(refs1, refs2): diff --git a/stix2/v20/__init__.py b/stix2/v20/__init__.py index 36d09be..002343b 100644 --- a/stix2/v20/__init__.py +++ b/stix2/v20/__init__.py @@ -32,7 +32,7 @@ from .observables import ( UNIXAccountExt, UserAccount, WindowsPEBinaryExt, WindowsPEOptionalHeaderType, WindowsPESection, WindowsProcessExt, WindowsRegistryKey, WindowsRegistryValueType, WindowsServiceExt, - X509Certificate, X509V3ExtenstionsType, + X509Certificate, X509V3ExtensionsType, ) from .sdo import ( AttackPattern, Campaign, CourseOfAction, CustomObject, Identity, Indicator, @@ -123,7 +123,7 @@ __all__ = """ UNIXAccountExt, UserAccount, WindowsPEBinaryExt, WindowsPEOptionalHeaderType, WindowsPESection, WindowsProcessExt, WindowsRegistryKey, WindowsRegistryValueType, WindowsServiceExt, - X509Certificate, X509V3ExtenstionsType, + X509Certificate, X509V3ExtensionsType, AttackPattern, Campaign, CourseOfAction, CustomObject, Identity, Indicator, IntrusionSet, Malware, ObservedData, Report, ThreatActor, Tool, diff --git a/stix2/v20/observables.py b/stix2/v20/observables.py index 79d4e79..cec979e 100644 --- a/stix2/v20/observables.py +++ b/stix2/v20/observables.py @@ -724,7 +724,7 @@ class WindowsRegistryKey(_Observable): ]) -class X509V3ExtenstionsType(_STIXBase20): +class X509V3ExtensionsType(_STIXBase20): """For more detailed information on this object's properties, see `the STIX 2.0 specification `__. """ # noqa @@ -770,7 +770,7 @@ class X509Certificate(_Observable): ('subject_public_key_algorithm', StringProperty()), ('subject_public_key_modulus', StringProperty()), ('subject_public_key_exponent', IntegerProperty()), - ('x509_v3_extensions', EmbeddedObjectProperty(type=X509V3ExtenstionsType)), + ('x509_v3_extensions', EmbeddedObjectProperty(type=X509V3ExtensionsType)), ('extensions', ExtensionsProperty(spec_version="2.0", enclosing_type=_type)), ]) diff --git a/stix2/v21/__init__.py b/stix2/v21/__init__.py index 77a28ee..15b2fb9 100644 --- a/stix2/v21/__init__.py +++ b/stix2/v21/__init__.py @@ -32,7 +32,7 @@ from .observables import ( UNIXAccountExt, UserAccount, WindowsPEBinaryExt, WindowsPEOptionalHeaderType, WindowsPESection, WindowsProcessExt, WindowsRegistryKey, WindowsRegistryValueType, WindowsServiceExt, - X509Certificate, X509V3ExtenstionsType, + X509Certificate, X509V3ExtensionsType, ) from .sdo import ( AttackPattern, Campaign, CourseOfAction, CustomObject, Grouping, Identity, @@ -131,7 +131,7 @@ __all__ = """ UNIXAccountExt, UserAccount, WindowsPEBinaryExt, WindowsPEOptionalHeaderType, WindowsPESection, WindowsProcessExt, WindowsRegistryKey, WindowsRegistryValueType, WindowsServiceExt, - X509Certificate, X509V3ExtenstionsType, + X509Certificate, X509V3ExtensionsType, AttackPattern, Campaign, CourseOfAction, CustomObject, Grouping, Identity, Indicator, Infrastructure, IntrusionSet, Location, Malware, diff --git a/stix2/v21/observables.py b/stix2/v21/observables.py index 616de0e..0859564 100644 --- a/stix2/v21/observables.py +++ b/stix2/v21/observables.py @@ -851,7 +851,7 @@ class WindowsRegistryKey(_Observable): _id_contributing_properties = ["key", "values"] -class X509V3ExtenstionsType(_STIXBase21): +class X509V3ExtensionsType(_STIXBase21): """For more detailed information on this object's properties, see `the STIX 2.1 specification `__. """ @@ -899,7 +899,7 @@ class X509Certificate(_Observable): ('subject_public_key_algorithm', StringProperty()), ('subject_public_key_modulus', StringProperty()), ('subject_public_key_exponent', IntegerProperty()), - ('x509_v3_extensions', EmbeddedObjectProperty(type=X509V3ExtenstionsType)), + ('x509_v3_extensions', EmbeddedObjectProperty(type=X509V3ExtensionsType)), ('object_marking_refs', ListProperty(ReferenceProperty(valid_types='marking-definition', spec_version='2.1'))), ('granular_markings', ListProperty(GranularMarking)), ('defanged', BooleanProperty(default=lambda: False)), diff --git a/stix2/workbench.py b/stix2/workbench.py index 3724bdb..ff5d680 100644 --- a/stix2/workbench.py +++ b/stix2/workbench.py @@ -55,7 +55,7 @@ from . import ( # noqa: F401 WindowsPEBinaryExt, WindowsPEOptionalHeaderType, WindowsPESection, WindowsProcessExt, WindowsRegistryKey, WindowsRegistryValueType, WindowsServiceExt, X509Certificate, - X509V3ExtenstionsType + X509V3ExtensionsType ) from .datastore.filters import FilterSet