Update app_secure_client.py and lib_secure_server.py WIP

This commit is contained in:
George 2020-03-29 23:59:36 -07:00
parent d55f387c8c
commit baa9c97439
2 changed files with 6 additions and 4 deletions

View File

@ -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)

View File

@ -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)