Пример #1
0
    def writeRegisterPacket(self, _data):
        # Build a packet
        pkt = Datagram()

        # Type of packet
        pkt.addUint8(MSG_REGISTER)
        pkt.addString(str(_data))
        return pkt
Пример #2
0
    def process_modules(self):
        # TODO: Compression
        dg = Datagram()
        dg.addUint32(len(self.modules))
        for moduleName in self.modules:
            data, size = self.modules[moduleName]

            dg.addString(moduleName)
            dg.addInt32(size)
            dg.appendData(data)

        data = dg.getMessage()
        iv = self.generate_key(16)
        key = self.generate_key(16)
        fixed_key = ''.join(
            chr((i ^ (7 * i + 16)) % ((i + 5) * 3)) for i in xrange(16))
        fixed_iv = ''.join(
            chr((i ^ (2 * i + 53)) % ((i + 9) * 6)) for i in xrange(16))
        securekeyandiv = aes.encrypt(iv + key, fixed_key, fixed_iv)
        return securekeyandiv + aes.encrypt(data, key, iv)