--[[ based on https://pastebin.com/PvbUbACi --]]   local channel = 1 os.loadAPI("DH")   m = peripheral.find("modem") m.open(1)   print("Calculating public key...") local public = DH.createSecret() print("Done")   print() print("Public Calc:"..public)   print() print("Waiting for other computer...") m.transmit(1,os.getComputerID(),{"sec","publicNum",public}) while true do   local event,p1,p2,p3,p4,p5 = os.pullEvent("modem_message")   if type(p4) == "table" and p4[1] == "sec" and p4[2] == "publicNum" then     m.transmit(1,os.getComputerID(),{"sec","publicNum",public})     print("Recieved public key from Computer ID "..p3)     local sharedNum = DH.handshake(p4[3])     print("Shared number:"..sharedNum)     break   end end   m.closeAll()