diff --git a/app_secure_client.py b/app_secure_client.py index 9c04e53..88a54c3 100644 --- a/app_secure_client.py +++ b/app_secure_client.py @@ -140,7 +140,7 @@ def recv_server_secrets(sock, _recv_buffer, key): sesskeyhash = data[-128:] data = data[:-128] encryptedsess = data[-256:] - # halfsesskey = key.decrypt(encryptedsess) + halfsesskey = key.decrypt(bytes(encryptedsess)) data = data[:-256] pubkeyhash = data[-128:] pubkey = data[:-128] @@ -153,7 +153,7 @@ def recv_server_secrets(sock, _recv_buffer, key): sock.close() raise Exception('Server public key does not match hash') print(f"Received server secrets correctly.") - return pubkey, halfsesskey + return RSA.importKey(pubkey), halfsesskey def main(): @@ -168,7 +168,7 @@ def main(): addr = (host, port) print("starting connection to", addr) sock = socket.create_connection(addr) - sock.settimeout(10) + sock.settimeout(None) # security handshake key = RSA.generate(2048, Random.new().read) @@ -178,6 +178,8 @@ def main(): send_client_key(sock, data) # receiving server secrets - public key and session key serverkey, sessionkey = recv_server_secrets(sock, _recv_buffer, key) + # acknowledge session key and passphrase + # TODO send encrypted key and passphrase back action, value = sys.argv[3], sys.argv[4] request = create_request(action, value) diff --git a/lib_secure_server.py b/lib_secure_server.py index 331b603..194b0e7 100644 --- a/lib_secure_server.py +++ b/lib_secure_server.py @@ -219,7 +219,7 @@ class Message: halfsesskey = self.sessionkey encryptedsess = self.clientkey.encrypt(halfsesskey, None)[0] sesskeyhash = hashlib.sha3_512(halfsesskey).hexdigest().encode() - mypubkey = self.key.publickey().exportKey() + mypubkey = self.key.publickey().exportKey('PEM') mypubkeyhash = hashlib.sha3_512(mypubkey).hexdigest().encode() mysecret = mypubkey + mypubkeyhash + encryptedsess + sesskeyhash response = self._create_handshake_content(mysecret)