local loggerClient = {} settings.define("logger.AES.key", { description = "AES key used for encryption", type = "number" }) settings.define("logger.modemSide", { description = "The side of the modem (for pocket computers this is 'back')", type = "string" }) settings.define("logger.channel", { description = "The channel used", type = "number" }) local AES = require("/AES") local key = settings.get("logger.AES.key") or error("No AES Key set") local modemSide = settings.get("logger.modemSide") or error("No modem found") local channel = settings.get("logger.channel") or error("No channel set") local modem = peripheral.wrap(modemSide) function loggerClient.log(sender, message) local message = textutils.serialize({sender = sender, message = message}) local encrypted = AES.ECB_256(AES.encrypt, key, message) modem.transmit(channel, channel, encrypted) end return loggerClient