Update app_secure_client.py and lib_secure_server.py WIP
This commit is contained in:
parent
d55f387c8c
commit
baa9c97439
@ -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)
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user