forked from ABicycle/Secure_Comm
/
peer.py
51 lines (45 loc) · 1.51 KB
/
peer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import socket
from rsa import RSA
class Peer:
def __init__(self, addr, port):
self.ip=addr
self.port=port
self.node = socket.socket()
self.crypt=RSA()
tuple=self.crypt.prime_tuple()
p, q = tuple
n=p*q
e=self.crypt.public_key(tuple)
self.pub_k=(e, n)
d=self.crypt.private_key(tuple, e)
self.priv_k=(d, n)
print(self.pub_k)
def connection(self):
self.node.connect((self.ip, self.port))
counter=0
while True:
query_en=self.node.recv(2048)
if query_en:
query=query_en.decode("utf-8")
if query in ["Enter username: ", "Enter password: ", "Enter public key: "]:
response=input(query)
type(response)
self.node.sendall(str.encode(response))
counter+=1
if counter==3:
break
message=(self.node.recv(2048)).decode("utf-8")
if message=="Name a group that you would want to create or join: ":
group=input(message)
type(group)
if group is not "":
self.node.sendall(str.encode(group))
data=self.node.recv(2048)
if data:
encoded=data.decode("utf-8")
res=self.crypt.decrypt(encoded, self.priv_k)
print(res)
self.node.close()
if __name__=="__main__":
obj=Peer('', 10000)
obj.connection()