mirror of https://github.com/MISP/PyMISP
fix: normalizing the outputs
parent
f4c0b92305
commit
8b8459ce53
|
@ -57,6 +57,14 @@ class Analysis(Enum):
|
||||||
completed = 2
|
completed = 2
|
||||||
|
|
||||||
|
|
||||||
|
def _int_to_str(d):
|
||||||
|
# transform all integer back to string
|
||||||
|
for k, v in d.items():
|
||||||
|
if isinstance(v, (int, float)) and not isinstance(v, bool):
|
||||||
|
d[k] = str(v)
|
||||||
|
return d
|
||||||
|
|
||||||
|
|
||||||
class MISPEncode(JSONEncoder):
|
class MISPEncode(JSONEncoder):
|
||||||
|
|
||||||
def default(self, obj):
|
def default(self, obj):
|
||||||
|
@ -151,6 +159,7 @@ class AbstractMISP(collections.MutableMapping):
|
||||||
else:
|
else:
|
||||||
val = self._datetime_to_timestamp(val)
|
val = self._datetime_to_timestamp(val)
|
||||||
to_return[attribute] = val
|
to_return[attribute] = val
|
||||||
|
to_return = _int_to_str(to_return)
|
||||||
return to_return
|
return to_return
|
||||||
|
|
||||||
def jsonable(self):
|
def jsonable(self):
|
||||||
|
@ -214,7 +223,7 @@ class AbstractMISP(collections.MutableMapping):
|
||||||
"""Convert a datetime.datetime object to a timestamp (int)"""
|
"""Convert a datetime.datetime object to a timestamp (int)"""
|
||||||
if isinstance(d, (int, str)) or (sys.version_info < (3, 0) and isinstance(d, unicode)):
|
if isinstance(d, (int, str)) or (sys.version_info < (3, 0) and isinstance(d, unicode)):
|
||||||
# Assume we already have a timestamp
|
# Assume we already have a timestamp
|
||||||
return d
|
return int(d)
|
||||||
if sys.version_info >= (3, 3):
|
if sys.version_info >= (3, 3):
|
||||||
return int(d.timestamp())
|
return int(d.timestamp())
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -247,7 +247,6 @@ class MISPAttribute(AbstractMISP):
|
||||||
to_return = super(MISPAttribute, self).to_dict()
|
to_return = super(MISPAttribute, self).to_dict()
|
||||||
if to_return.get('data'):
|
if to_return.get('data'):
|
||||||
to_return['data'] = base64.b64encode(self.data.getvalue()).decode()
|
to_return['data'] = base64.b64encode(self.data.getvalue()).decode()
|
||||||
to_return = _int_to_str(to_return)
|
|
||||||
return to_return
|
return to_return
|
||||||
|
|
||||||
def _prepare_new_malware_sample(self):
|
def _prepare_new_malware_sample(self):
|
||||||
|
@ -573,9 +572,7 @@ class MISPEvent(AbstractMISP):
|
||||||
if to_return.get('publish_timestamp'):
|
if to_return.get('publish_timestamp'):
|
||||||
to_return['publish_timestamp'] = self._datetime_to_timestamp(self.publish_timestamp)
|
to_return['publish_timestamp'] = self._datetime_to_timestamp(self.publish_timestamp)
|
||||||
|
|
||||||
to_return = _int_to_str(to_return)
|
return {'Event': _int_to_str(to_return)}
|
||||||
to_return = {'Event': to_return}
|
|
||||||
return to_return
|
|
||||||
|
|
||||||
def add_proposal(self, shadow_attribute=None, **kwargs):
|
def add_proposal(self, shadow_attribute=None, **kwargs):
|
||||||
"""Alias for add_shadow_attribute"""
|
"""Alias for add_shadow_attribute"""
|
||||||
|
|
|
@ -37,12 +37,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Whois records information for a domain name or an IP address.",
|
"description": "Whois records information for a domain name or an IP address.",
|
||||||
"distribution": 5,
|
"distribution": "5",
|
||||||
"meta-category": "network",
|
"meta-category": "network",
|
||||||
"name": "whois",
|
"name": "whois",
|
||||||
"sharing_group_id": 0,
|
"sharing_group_id": "0",
|
||||||
"template_uuid": "429faea1-34ff-47af-8a00-7c62d3be5a6a",
|
"template_uuid": "429faea1-34ff-47af-8a00-7c62d3be5a6a",
|
||||||
"template_version": 10,
|
"template_version": "10",
|
||||||
"uuid": "a"
|
"uuid": "a"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -26,12 +26,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "File object describing a file with meta-information",
|
"description": "File object describing a file with meta-information",
|
||||||
"distribution": 5,
|
"distribution": "5",
|
||||||
"meta-category": "file",
|
"meta-category": "file",
|
||||||
"name": "file",
|
"name": "file",
|
||||||
"sharing_group_id": 0,
|
"sharing_group_id": "0",
|
||||||
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
|
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
|
||||||
"template_version": 13,
|
"template_version": "13",
|
||||||
"uuid": "a"
|
"uuid": "a"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -46,12 +46,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.",
|
"description": "url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.",
|
||||||
"distribution": 5,
|
"distribution": "5",
|
||||||
"meta-category": "network",
|
"meta-category": "network",
|
||||||
"name": "url",
|
"name": "url",
|
||||||
"sharing_group_id": 0,
|
"sharing_group_id": "0",
|
||||||
"template_uuid": "60efb77b-40b5-4c46-871b-ed1ed999fce5",
|
"template_uuid": "60efb77b-40b5-4c46-871b-ed1ed999fce5",
|
||||||
"template_version": 6,
|
"template_version": "6",
|
||||||
"uuid": "b"
|
"uuid": "b"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "File object describing a file with meta-information",
|
"description": "File object describing a file with meta-information",
|
||||||
"distribution": 5,
|
"distribution": "5",
|
||||||
"meta-category": "file",
|
"meta-category": "file",
|
||||||
"name": "file",
|
"name": "file",
|
||||||
"sharing_group_id": 0,
|
"sharing_group_id": "0",
|
||||||
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
|
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
|
||||||
"template_version": 13,
|
"template_version": "13",
|
||||||
"uuid": "a"
|
"uuid": "a"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -43,12 +43,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "File object describing a file with meta-information",
|
"description": "File object describing a file with meta-information",
|
||||||
"distribution": 5,
|
"distribution": "5",
|
||||||
"meta-category": "file",
|
"meta-category": "file",
|
||||||
"name": "file",
|
"name": "file",
|
||||||
"sharing_group_id": 0,
|
"sharing_group_id": "0",
|
||||||
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
|
"template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
|
||||||
"template_version": 13,
|
"template_version": "13",
|
||||||
"uuid": "b"
|
"uuid": "b"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -21,13 +21,13 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "TestTemplate.",
|
"description": "TestTemplate.",
|
||||||
"distribution": 5,
|
"distribution": "5",
|
||||||
"meta-category": "file",
|
"meta-category": "file",
|
||||||
"misp_objects_path_custom": "tests/mispevent_testfiles",
|
"misp_objects_path_custom": "tests/mispevent_testfiles",
|
||||||
"name": "test_object_template",
|
"name": "test_object_template",
|
||||||
"sharing_group_id": 0,
|
"sharing_group_id": "0",
|
||||||
"template_uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589",
|
"template_uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589",
|
||||||
"template_version": 1,
|
"template_version": "1",
|
||||||
"uuid": "a"
|
"uuid": "a"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"timestamp": 11111111,
|
"timestamp": "11111111",
|
||||||
"type": "bar",
|
"type": "bar",
|
||||||
"value": "1"
|
"value": "1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
"misp-attribute": "text"
|
"misp-attribute": "text"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": 1,
|
"version": "1",
|
||||||
"description": "TestTemplate.",
|
"description": "TestTemplate.",
|
||||||
"meta-category": "file",
|
"meta-category": "file",
|
||||||
"uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589",
|
"uuid": "4ec55cc6-9e49-4c64-b794-03c25c1a6589",
|
||||||
|
|
Loading…
Reference in New Issue