Files
Bubberstation/code/modules/NTNet/netdata.dm
ACCount 1f5b59190d NTNet airlocks (#35947)
* Standardizes access checks

* Makes SS Networks init before SS Atoms to prevent NTNet interfaces from initializing before them

* Adds passkey support to NTNet packets

* Adds NTNet support to airlocks, makes door remote use NTNet

* Access levels given by jobs are now shuffled

* Access code improvements

* Adds IC card readers

* Fixes a delay issue with opening/closing airlocks with NTNet or signalers

* code review memes

* Renames plaintext_passkey to encrypted_passkey

* death by thousand nitpicks
2018-03-08 18:39:17 -05:00

47 lines
1.3 KiB
Plaintext

/datum/netdata //this requires some thought later on but for now it's fine.
var/network_id
var/list/recipient_ids = list()
var/sender_id
var/plaintext_data
var/plaintext_data_secondary
var/encrypted_passkey
var/list/passkey
// Process data before sending it
/datum/netdata/proc/pre_send(datum/component/ntnet_interface/interface)
// Decrypt the passkey.
if(encrypted_passkey && !passkey)
passkey = json_decode(XorEncrypt(hextostr(encrypted_passkey, TRUE), SScircuit.cipherkey))
// Encrypt the passkey.
if(!encrypted_passkey && passkey)
encrypted_passkey = strtohex(XorEncrypt(json_encode(passkey), SScircuit.cipherkey))
// If there is no sender ID, set the default one.
if(!sender_id && interface)
sender_id = interface.hardware_id
/datum/netdata/proc/json_list_generation_admin() //for admin logs and such.
. = list()
. |= json_list_generation()
/datum/netdata/proc/json_list_generation()
. = list()
. |= json_list_generation_netlog()
.["network_id"] = network_id
/datum/netdata/proc/json_list_generation_netlog()
. = list()
.["recipient_ids"] = recipient_ids
.["sender_id"] = sender_id
.["data"] = plaintext_data
.["data_secondary"] = plaintext_data_secondary
.["passkey"] = encrypted_passkey
/datum/netdata/proc/generate_netlog()
return "[json_encode(json_list_generation_netlog())]"