From d1dd46238ac5c361109dd4899e569e8c1177cf3b Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 16 Sep 2021 15:30:39 +0100 Subject: [PATCH 1/3] Update access.dm --- .../modules/integrated_electronics/subtypes/access.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/integrated_electronics/subtypes/access.dm b/code/modules/integrated_electronics/subtypes/access.dm index 5e03ea1394..3473d07004 100644 --- a/code/modules/integrated_electronics/subtypes/access.dm +++ b/code/modules/integrated_electronics/subtypes/access.dm @@ -14,10 +14,16 @@ "on read" = IC_PINTYPE_PULSE_OUT ) + var/cipherkey + +/obj/item/integrated_circuit/input/card_reader/Initialize() + cipherkey = uppertext(random_string(2000+rand(0,10), GLOB.alphabet)) // the same way SScircuit.cipherkey is generated + ..() + /obj/item/integrated_circuit/input/card_reader/attackby_react(obj/item/I, mob/living/user, intent) var/obj/item/card/id/card = I.GetID() var/list/access = I.GetAccess() - var/passkey = strtohex(XorEncrypt(json_encode(access), SScircuit.cipherkey)) + var/passkey = strtohex(XorEncrypt(json_encode(access), cipherkey)) if(assembly) assembly.access_card.access |= access @@ -38,3 +44,6 @@ push_data() activate_pin(1) return TRUE + +/obj/item/integrated_circuit/input/card_reader/set_pin_data(pin_type, pin_number, datum/new_data) + cipherkey = uppertext(random_string(2000+rand(0,10), GLOB.alphabet)) // NEVER REUSE THE SAME KEY From 366bab9dbfdb3cf7ef4f457518d0afb7d8e9e883 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 18 Sep 2021 10:47:50 +0100 Subject: [PATCH 2/3] removes the passkey --- code/modules/integrated_electronics/subtypes/access.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/modules/integrated_electronics/subtypes/access.dm b/code/modules/integrated_electronics/subtypes/access.dm index 3473d07004..037a9c7ba0 100644 --- a/code/modules/integrated_electronics/subtypes/access.dm +++ b/code/modules/integrated_electronics/subtypes/access.dm @@ -8,14 +8,11 @@ outputs = list( "registered name" = IC_PINTYPE_STRING, "assignment" = IC_PINTYPE_STRING, - "passkey" = IC_PINTYPE_STRING ) activators = list( "on read" = IC_PINTYPE_PULSE_OUT ) - var/cipherkey - /obj/item/integrated_circuit/input/card_reader/Initialize() cipherkey = uppertext(random_string(2000+rand(0,10), GLOB.alphabet)) // the same way SScircuit.cipherkey is generated ..() @@ -39,11 +36,6 @@ else return FALSE - set_pin_data(IC_OUTPUT, 3, passkey) - push_data() activate_pin(1) return TRUE - -/obj/item/integrated_circuit/input/card_reader/set_pin_data(pin_type, pin_number, datum/new_data) - cipherkey = uppertext(random_string(2000+rand(0,10), GLOB.alphabet)) // NEVER REUSE THE SAME KEY From c506289e6fdc3b656d6cbf326e995fdb1ea57a71 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 18 Sep 2021 14:24:20 +0100 Subject: [PATCH 3/3] removes remaining references --- code/modules/integrated_electronics/subtypes/access.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/modules/integrated_electronics/subtypes/access.dm b/code/modules/integrated_electronics/subtypes/access.dm index 037a9c7ba0..ddfed3753b 100644 --- a/code/modules/integrated_electronics/subtypes/access.dm +++ b/code/modules/integrated_electronics/subtypes/access.dm @@ -13,14 +13,9 @@ "on read" = IC_PINTYPE_PULSE_OUT ) -/obj/item/integrated_circuit/input/card_reader/Initialize() - cipherkey = uppertext(random_string(2000+rand(0,10), GLOB.alphabet)) // the same way SScircuit.cipherkey is generated - ..() - /obj/item/integrated_circuit/input/card_reader/attackby_react(obj/item/I, mob/living/user, intent) var/obj/item/card/id/card = I.GetID() var/list/access = I.GetAccess() - var/passkey = strtohex(XorEncrypt(json_encode(access), cipherkey)) if(assembly) assembly.access_card.access |= access