create a new exception for TLP validation and util method
parent
46c47a0d08
commit
d6497f66fe
|
@ -203,3 +203,16 @@ class MarkingNotFoundError(STIXError, AssertionError):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
msg = "Marking {0} was not found in {1}!"
|
msg = "Marking {0} was not found in {1}!"
|
||||||
return msg.format(self.key, self.cls.__class__.__name__)
|
return msg.format(self.key, self.cls.__class__.__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class TLPMarkingDefinitionError(STIXError, AssertionError):
|
||||||
|
"""Marking violation. The marking-definition for TLP MUST follow the mandated instances from the spec."""
|
||||||
|
|
||||||
|
def __init__(self, user_obj, spec_obj):
|
||||||
|
super(TLPMarkingDefinitionError, self).__init__()
|
||||||
|
self.user_obj = user_obj
|
||||||
|
self.spec_obj = spec_obj
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
msg = "Marking {0} does not match spec marking {1}!"
|
||||||
|
return msg.format(self.user_obj, self.spec_obj)
|
||||||
|
|
|
@ -11,7 +11,8 @@ import pytz
|
||||||
import stix2.base
|
import stix2.base
|
||||||
|
|
||||||
from .exceptions import (
|
from .exceptions import (
|
||||||
InvalidValueError, RevokeError, TLPMarkingDefinitionError, UnmodifiablePropertyError,
|
InvalidValueError, RevokeError, TLPMarkingDefinitionError,
|
||||||
|
UnmodifiablePropertyError,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Sentinel value for properties that should be set to the current time.
|
# Sentinel value for properties that should be set to the current time.
|
||||||
|
@ -414,12 +415,16 @@ def check_tlp_marking(marking_obj, spec_version):
|
||||||
|
|
||||||
if color == "white":
|
if color == "white":
|
||||||
if spec_version == '2.0':
|
if spec_version == '2.0':
|
||||||
w = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "white"}, "definition_type": "tlp",'
|
w = (
|
||||||
' "id": "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9", "type": "marking-definition"}')
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "white"}, "definition_type": "tlp",'
|
||||||
|
' "id": "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9", "type": "marking-definition"}'
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
w = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "white"}, "definition_type": "tlp",'
|
w = (
|
||||||
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "white"}, "definition_type": "tlp",'
|
||||||
' "id": "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9", "type": "marking-definition",'
|
' "id": "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9", "type": "marking-definition",'
|
||||||
' "spec_version": "2.1"}')
|
' "spec_version": "2.1"}'
|
||||||
|
)
|
||||||
if marking_obj["id"] != "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9":
|
if marking_obj["id"] != "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9":
|
||||||
raise TLPMarkingDefinitionError(marking_obj["id"], w)
|
raise TLPMarkingDefinitionError(marking_obj["id"], w)
|
||||||
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
||||||
|
@ -427,12 +432,16 @@ def check_tlp_marking(marking_obj, spec_version):
|
||||||
|
|
||||||
elif color == "green":
|
elif color == "green":
|
||||||
if spec_version == '2.0':
|
if spec_version == '2.0':
|
||||||
g = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "green"}, "definition_type": "tlp",'
|
g = (
|
||||||
' "id": "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da", "type": "marking-definition"}')
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "green"}, "definition_type": "tlp",'
|
||||||
|
' "id": "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da", "type": "marking-definition"}'
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
g = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "green"}, "definition_type": "tlp",'
|
g = (
|
||||||
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "green"}, "definition_type": "tlp",'
|
||||||
' "id": "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da", "type": "marking-definition",'
|
' "id": "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da", "type": "marking-definition",'
|
||||||
' "spec_version": "2.1"}')
|
' "spec_version": "2.1"}'
|
||||||
|
)
|
||||||
if marking_obj["id"] != "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da":
|
if marking_obj["id"] != "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da":
|
||||||
raise TLPMarkingDefinitionError(marking_obj["id"], g)
|
raise TLPMarkingDefinitionError(marking_obj["id"], g)
|
||||||
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
||||||
|
@ -440,12 +449,16 @@ def check_tlp_marking(marking_obj, spec_version):
|
||||||
|
|
||||||
elif color == "amber":
|
elif color == "amber":
|
||||||
if spec_version == '2.0':
|
if spec_version == '2.0':
|
||||||
a = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "amber"}, "definition_type": "tlp",'
|
a = (
|
||||||
' "id": "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82", "type": "marking-definition"}')
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "amber"}, "definition_type": "tlp",'
|
||||||
|
' "id": "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82", "type": "marking-definition"}'
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
a = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "amber"}, "definition_type": "tlp",'
|
a = (
|
||||||
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "amber"}, "definition_type": "tlp",'
|
||||||
' "id": "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82", "type": "marking-definition",'
|
' "id": "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82", "type": "marking-definition",'
|
||||||
' "spec_version": "2.1"}')
|
' "spec_version": "2.1"}'
|
||||||
|
)
|
||||||
if marking_obj["id"] != "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82":
|
if marking_obj["id"] != "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82":
|
||||||
raise TLPMarkingDefinitionError(marking_obj["id"], a)
|
raise TLPMarkingDefinitionError(marking_obj["id"], a)
|
||||||
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
||||||
|
@ -453,12 +466,16 @@ def check_tlp_marking(marking_obj, spec_version):
|
||||||
|
|
||||||
elif color == "red":
|
elif color == "red":
|
||||||
if spec_version == '2.0':
|
if spec_version == '2.0':
|
||||||
r = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "red"}, "definition_type": "tlp",'
|
r = (
|
||||||
' "id": "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed", "type": "marking-definition"}')
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "red"}, "definition_type": "tlp",'
|
||||||
|
' "id": "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed", "type": "marking-definition"}'
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
r = ('{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "red"}, "definition_type": "tlp",'
|
r = (
|
||||||
|
'{"created": "2017-01-20T00:00:00.000Z", "definition": {"tlp": "red"}, "definition_type": "tlp",'
|
||||||
' "id": "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed", "type": "marking-definition",'
|
' "id": "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed", "type": "marking-definition",'
|
||||||
' "spec_version": "2.1"}')
|
' "spec_version": "2.1"}'
|
||||||
|
)
|
||||||
if marking_obj["id"] != "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed":
|
if marking_obj["id"] != "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed":
|
||||||
raise TLPMarkingDefinitionError(marking_obj["id"], r)
|
raise TLPMarkingDefinitionError(marking_obj["id"], r)
|
||||||
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
elif format_datetime(marking_obj["created"]) != "2017-01-20T00:00:00.000Z":
|
||||||
|
@ -466,4 +483,3 @@ def check_tlp_marking(marking_obj, spec_version):
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise TLPMarkingDefinitionError(marking_obj["id"], "Does not match any TLP Marking definition")
|
raise TLPMarkingDefinitionError(marking_obj["id"], "Does not match any TLP Marking definition")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue