From 4cf91272de1aa99bd3c0c9db51507eb751c234ce Mon Sep 17 00:00:00 2001 From: Tilen Komel Date: Sat, 24 Aug 2024 12:21:41 +0200 Subject: [PATCH] Removed admin key generation from security --- .../PageComponents/Config/Security.tsx | 66 +++++-------------- 1 file changed, 18 insertions(+), 48 deletions(-) diff --git a/src/components/PageComponents/Config/Security.tsx b/src/components/PageComponents/Config/Security.tsx index 62c25e99..c07099df 100644 --- a/src/components/PageComponents/Config/Security.tsx +++ b/src/components/PageComponents/Config/Security.tsx @@ -29,10 +29,6 @@ export const Security = (): JSX.Element => { const [adminKey, setAdminKey] = useState( fromByteArray(config.security?.adminKey ?? new Uint8Array(0)), ); - const [adminKeyVisible, setAdminKeyVisible] = useState(false); - const [adminKeyBitCount, setAdminKeyBitCount] = useState( - config.security?.adminKey.length ?? 16, - ); const [adminKeyValidationText, setAdminKeyValidationText] = useState(); @@ -54,32 +50,7 @@ export const Security = (): JSX.Element => { ); }; - const privateKeyClickEvent = () => { - const privateKey = getX25519PrivateKey(); - const publicKey = getX25519PublicKey(privateKey); - - setPrivateKey(fromByteArray(privateKey)); - setPublicKey(fromByteArray(publicKey)); - validatePass( - fromByteArray(privateKey), - privateKeyBitCount, - setPrivateKeyValidationText, - ); - }; - - const adminKeyClickEvent = () => { - setAdminKey( - btoa( - cryptoRandomString({ - length: adminKeyBitCount ?? 0, - type: "alphanumeric", - }), - ), - ); - setAdminKeyValidationText(undefined); - }; - - const validatePass = ( + const validateKey = ( input: string, count: number, setValidationText: ( @@ -98,12 +69,25 @@ export const Security = (): JSX.Element => { } }; + const privateKeyClickEvent = () => { + const privateKey = getX25519PrivateKey(); + const publicKey = getX25519PublicKey(privateKey); + + setPrivateKey(fromByteArray(privateKey)); + setPublicKey(fromByteArray(publicKey)); + validateKey( + fromByteArray(privateKey), + privateKeyBitCount, + setPrivateKeyValidationText, + ); + }; + const privateKeyInputChangeEvent = ( e: React.ChangeEvent, ) => { const privateKeyB64String = e.currentTarget?.value; setPrivateKey(privateKeyB64String); - validatePass( + validateKey( privateKeyB64String, privateKeyBitCount, setPrivateKeyValidationText, @@ -116,19 +100,13 @@ export const Security = (): JSX.Element => { const adminKeyInputChangeEvent = (e: React.ChangeEvent) => { const psk = e.currentTarget?.value; setAdminKey(psk); - validatePass(psk, privateKeyBitCount, setAdminKeyValidationText); + validateKey(psk, privateKeyBitCount, setAdminKeyValidationText); }; const privateKeySelectChangeEvent = (e: string) => { const count = Number.parseInt(e); setPrivateKeyBitCount(count); - validatePass(privateKey, count, setPrivateKeyValidationText); - }; - - const adminKeySelectChangeEvent = (e: string) => { - const count = Number.parseInt(e); - setAdminKeyBitCount(count); - validatePass(privateKey, count, setAdminKeyValidationText); + validateKey(privateKey, count, setPrivateKeyValidationText); }; return ( @@ -205,24 +183,16 @@ export const Security = (): JSX.Element => { 'If true, device is considered to be "managed" by a mesh administrator via admin messages', }, { - type: "passwordGenerator", + type: "text", name: "adminKey", label: "Admin Key", description: "The public key authorized to send admin messages to this node", validationText: adminKeyValidationText, - devicePSKBitCount: adminKeyBitCount, inputChange: adminKeyInputChangeEvent, - selectChange: adminKeySelectChangeEvent, - hide: !adminKeyVisible, - buttonClick: adminKeyClickEvent, disabledBy: [{ fieldName: "adminChannelEnabled" }], properties: { value: adminKey, - action: { - icon: adminKeyVisible ? EyeOff : Eye, - onClick: () => setAdminKeyVisible(!adminKeyVisible), - }, }, }, ],