Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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()