Dependencies (these are auto-downloaded upon running the API):
My modified Ring LWE API
Anavrins' ChaCha20 API
Anavrins' PBKDF2/HMAC API
Features:
- Key exchange using Ring LWE
- Fast yet secure ChaCha20 encryption
- Replay attack protection via HMAC
- Authentication via public/private keys generated via Ring LWE
pastebin get tUe94t9J ringnet
Functions:
--something encased in [ ] means it's optional.
-- HID = 8-character hexadecimal "handshake ID"
-- CID = long hexadecimal "session" or "connection" ID.
-- Starts a loop that listens for Ring LWE messages and converts them into events. Needs to be run on server AND client.
connectionHandler([client mode])
-- Initiates a handshake with targetID, over frq. Needs connectionHandler open to be any good.
-- Auto calculates frequency, which is used for sendData
openTunnel(targetHID, frequency)
-- Sends encrypted data to targetID, over frq
-- A handshake must have already been initiated for this!
sendData(targetCID, data)
-- Opens a channel on the API's modem object
openChannel(channel)
Events:
-- Occurs when handshake is finished
local ev, cid_from = os.pullEvent("tunnel_finish")
-- Occurs upon receiving encrypted data.
local ev, cid_from, data, distance = os.pullEvent("secure_receive")