def generatePackets(self, plaintext): pt = bytearray(plaintext) packets = [] for i in range(len(pt)): if i % 252 == 0: packet = Packet() packets.append(packet) packet.seqCount = self.SCA self.SCA = self.SCA + 1 packet.append(pt[i]) self.applyPadding(packets[-1]) return packets
def header_to_host_byte_ord(packet_bytearray, header_dict): """Takes a bytearray and a header_dict. Assumes the begining of packet_bytearray is a header in network byte order. Returns a bytearray representing a header in host order.""" header_len = sum(bit_len for bit_len, _ in header_dict.values()) header_len_bytes = math.ceil(header_len / BYTE_LEN) pkt_net = Packet(header_len, packet_bytearray[:header_len_bytes]) pkt_host = Packet(header_len) l_bit = 0 r_bit = 0 for bit_len, _ in header_dict.values(): r_bit += bit_len value = pkt_net.get_from_bits(l_bit, r_bit) value = network_to_host(bit_len, value) pkt_host.append(value, bit_len) l_bit = r_bit + 1 return pkt_host.get_bytearray()