Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. import socket
  2. from Crypto.PublicKey import RSA
  3. import threading
  4.  
  5. server_ip = "192.168.1.125"
  6. port = 8420
  7. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  8. server_key = b""
  9. server_key_obj = []
  10. key = b""
  11. connected = False
  12.  
  13.  
  14. def connect():
  15. global server_key_obj
  16. global s
  17. global key
  18. key = RSA.generate(2048)
  19. try:
  20. print(1)
  21. s.connect((server_ip, port))
  22. except socket.error:
  23. print("server not online")
  24. connect()
  25. pub_key = key.publickey().exportKey("DER")
  26. s.send(b"qgt")
  27. s.send(pub_key)
  28. print(2)
  29. t = threading.Thread(target=reciv_data, daemon=True)
  30. t.start()
  31. while True:
  32. if connected:
  33. a = input(">")
  34. cifertext = server_key_obj.encrypt(a.encode(), "x")[0]
  35. s.send(cifertext)
  36.  
  37.  
  38. def reciv_data():
  39. global key
  40. global connected
  41. global server_key
  42. global server_key_obj
  43. first_packet = True
  44. while True:
  45. try:
  46. data = s.recv(1024)
  47. if len(data) > 0 and first_packet != True:
  48. print(key.decrypt(data).decode())
  49. else:
  50. server_key = data
  51. first_packet = False
  52. server_key_obj = RSA.importKey(server_key)
  53. print("Handshake done")
  54. connected = True
  55. except socket.error:
  56. print("server offline")
  57. break
  58.  
  59.  
  60. def main():
  61. connect()
  62.  
  63.  
  64. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement