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:] sesskeyhash = data[-128:]
data = data[:-128] data = data[:-128]
encryptedsess = data[-256:] encryptedsess = data[-256:]
# halfsesskey = key.decrypt(encryptedsess) halfsesskey = key.decrypt(bytes(encryptedsess))
data = data[:-256] data = data[:-256]
pubkeyhash = data[-128:] pubkeyhash = data[-128:]
pubkey = data[:-128] pubkey = data[:-128]
@ -153,7 +153,7 @@ def recv_server_secrets(sock, _recv_buffer, key):
sock.close() sock.close()
raise Exception('Server public key does not match hash') raise Exception('Server public key does not match hash')
print(f"Received server secrets correctly.") print(f"Received server secrets correctly.")
return pubkey, halfsesskey return RSA.importKey(pubkey), halfsesskey
def main(): def main():
@ -168,7 +168,7 @@ def main():
addr = (host, port) addr = (host, port)
print("starting connection to", addr) print("starting connection to", addr)
sock = socket.create_connection(addr) sock = socket.create_connection(addr)
sock.settimeout(10) sock.settimeout(None)
# security handshake # security handshake
key = RSA.generate(2048, Random.new().read) key = RSA.generate(2048, Random.new().read)
@ -178,6 +178,8 @@ def main():
send_client_key(sock, data) send_client_key(sock, data)
# receiving server secrets - public key and session key # receiving server secrets - public key and session key
serverkey, sessionkey = recv_server_secrets(sock, _recv_buffer, 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] action, value = sys.argv[3], sys.argv[4]
request = create_request(action, value) request = create_request(action, value)

View File

@ -219,7 +219,7 @@ class Message:
halfsesskey = self.sessionkey halfsesskey = self.sessionkey
encryptedsess = self.clientkey.encrypt(halfsesskey, None)[0] encryptedsess = self.clientkey.encrypt(halfsesskey, None)[0]
sesskeyhash = hashlib.sha3_512(halfsesskey).hexdigest().encode() 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() mypubkeyhash = hashlib.sha3_512(mypubkey).hexdigest().encode()
mysecret = mypubkey + mypubkeyhash + encryptedsess + sesskeyhash mysecret = mypubkey + mypubkeyhash + encryptedsess + sesskeyhash
response = self._create_handshake_content(mysecret) response = self._create_handshake_content(mysecret)