Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local event = require("event")
- local modem = component.modem
- local keyboard = require("keyboard")
- local data = component.data
- --local serverAddress = "7709c111-2724-4327-a98e-280aaf2cd439"
- local serverAddress = "9955471e-b28f-4001-9d66-79c28c75be2d"
- local computerAddress = "defb88c6-fe9b-4fd7-a236-c1b956c9023e"
- local compOrServer
- local addressToUse
- local sendID
- local receiveID
- local key = "Two One Nine Two"
- local IV = "Thats my Kung Fu"
- local decryptedMessage
- local function CheckModem()
- for k,v in component.list("modem") do
- if k == serverAddress then
- compOrServer = "server"
- break
- elseif k == computerAddress then
- compOrServer = "computer"
- break
- end
- end
- end
- local function CompOrServer(compOrServer)
- if compOrServer == "computer" then
- addressToUse = serverAddress
- sendID = "Computer: "
- receiveID = "Server: "
- elseif compOrServer == "server" then
- addressToUse = computerAddress
- sendID = "Server: "
- receiveID = "Computer: "
- end
- end
- local function OpenPort()
- modem.open(42)
- openStatus = modem.isOpen(42)
- if openStatus then
- print("Successfully opened port 42.")
- else
- print("Was unable to open port 42, closing program...")
- os.exit()
- end
- end
- local function EncryptMessage(message, key, IV)
- encryptedMessage = data.encrypt(message, key, IV)
- if encryptedMessage == message then
- print("Encryption of message has failed, exiting program.")
- modem.close(42)
- os.exit()
- end
- return encryptedMessage
- end
- local function SendMessage(key, IV)
- io.write(sendID)
- message = io.read()
- encryptedMessage = EncryptMessage(message, key, IV)
- print("Sending " .. encryptedMessage .. " to " .. addressToUse .. " on port 42")
- modem.send(addressToUse, 42, encryptedMessage)
- end
- local function DecryptMessage(encryptedMessage, key, IV)
- decryptedMessage = data.decrypt(encryptedMessage, key, IV)
- if encryptedMessage == decryptedMessage then
- print("Message decryption has failed, exiting program.")
- modem.close(42)
- os.exit()
- end
- return decryptedMessage
- end
- OpenPort()
- CheckModem()
- CompOrServer(compOrServer)
- print("Hold ctrl to send a message. Hold alt to exit.")
- while true do
- local type, _, from, port, _, message = event.pull()
- if type == "modem_message" then
- if message ~= nil then
- decryptedMessage = DecryptMessage(message, key, IV)
- print(receiveID .. tostring(decryptedMessage))
- end
- elseif type == "key_down" then
- if keyboard.isAltDown() then
- modem.close(42)
- print("Closing port 42 and exiting program...")
- os.exit()
- elseif keyboard.isControlDown() then
- SendMessage(key, IV)
- --else
- --os.sleep(0.5)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement