def save_payload(self, payload, connector): """ Save a payload using the designated connector :param bytes payload: Payload to pass to the connector for saving :param str connector: Connector plugin to save the payload with """ arc = get_hashes(payload) # Let's make sure we add some additional metadata so we don't need # to create this later. arc['ssdeep'] = get_ssdeep(payload) arc['content-type'] = get_magic(payload) # Make sure our connector is loaded self.load_connector(connector) # Save our payload to the appropriate plugin res = self.connectors[connector].save(payload, archive=True, **arc) arc['conn_id'] = res return arc
def attachment_metadata(self, payload=None, filename=None, uuid=None): # Make sure we have a payload, otherwise return None if not payload or len(payload) <= 0: return None attachment_json = {} # Generate hashes attachment_json['md5'] = get_md5(payload) attachment_json['sha1'] = get_sha1(payload) attachment_json['sha256'] = get_sha256(payload) attachment_json['sha512'] = get_sha512(payload) attachment_json['ssdeep'] = get_ssdeep(payload) # Get magic type attachment_json['magic'] = get_magic(payload) # Get size attachment_json['size'] = len(payload) # Define the filename as provided attachment_json['filename'] = filename # Make sure we have the parent uuid generated with the original email attachment_json['uuid'] = uuid.copy() # Generate a unique ID attachment_json['uuid'].append(self.stoq.get_uuid) return attachment_json