From 63733a317f6fa1b4fcabb8b8c642e8321eab1ddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Mon, 26 Apr 2021 00:22:05 +0200 Subject: [PATCH] cipherkey is now guaranteed to be 32 characters strong --- server/netwrapper.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/netwrapper.py b/server/netwrapper.py index b194e32..dec3d84 100644 --- a/server/netwrapper.py +++ b/server/netwrapper.py @@ -2,6 +2,7 @@ import json from base64 import b64encode, b64decode import pyDH +from Crypto.Hash import SHA512 from Crypto.Cipher import PKCS1_OAEP from Crypto.Cipher import ChaCha20 from Crypto.PublicKey.RSA import RsaKey @@ -62,7 +63,10 @@ class NetWrapper: decodedmsg = json.loads(msg.decode('UTF-8')) cipher_rsa = PKCS1_OAEP.new(self.serverPrivateKey) serverpubkey = int(cipher_rsa.decrypt(b64decode(decodedmsg['message'])).decode('UTF-8')) - self.cipherkey = dh.gen_shared_key(serverpubkey).encode('UTF-8') + cipherkey = dh.gen_shared_key(serverpubkey).encode('UTF-8') + hasher = SHA512.new() + hasher.update(cipherkey) + self.cipherkey = hasher.hexdigest()[:32] def login(self) -> bool: