def _decode_data(self, key, value): child = Layer(True) child.parent = self.layer child.name = key child.add_header({'http_header_name': key}) child.raw_data = value child.lines = [value] self.layer.add_extracted_layer(child)
def _decode(self, data, **metadata): try: data = http.multipart.decode({}, data) self.layer.lines = [] for (k, v) in data: child = Layer(True) child.human_readable = True child.parent = self.layer child.raw_data = v child.name = k child.lines = [v] self.layer.lines.append('%s' % v) self.layer.add_extracted_layer(child) except Exception as e: raise ValueError("[Phorcys] Failed to parse input.")
def decode(self, data, **kwargs) -> Layer: parent = Layer() parent.raw_data = data parent.name = 'root' to_visit = [parent] while len(to_visit) != 0: next = to_visit.pop() layer = self.go_deeper(next, **kwargs) if layer is not None: layers = layer.extracted_layers if layers is not None: to_visit.extend(layers) self.top_layer = parent self._complete_leaves() return parent
def _decode(self, data, **metadata): try: if type(data) is not str: data = data.decode("ascii", "strict") if not data.startswith('http'): raise ValueError("[Phorcys] Failed to parse input.") data = url.decode(data) if not data: raise ValueError("[Phorcys] Failed to parse input.") for (k, v) in data: child = Layer(True) child.human_readable = True child.parent = self.layer child.raw_data = v child.name = k child.lines = [v] self.layer.lines.append('%s=%s' % (k, v)) self.layer.add_extracted_layer(child) except: raise ValueError("[Phorcys] Failed to parse input.")