Je vais me coucher

This commit is contained in:
louis chauvet 2018-11-16 21:54:30 +01:00
parent c844449871
commit 5535702c78
5 changed files with 83 additions and 77 deletions

View File

@ -286,6 +286,8 @@ Cette requête est utilisé pour initialiser la communication crypté entre deux
Requête envoyée en réponse à RSASend pour initialiser la connection cryptée en AES.
### Error ###
Error

View File

@ -85,9 +85,7 @@ key = RSA.generate(BUFFER_SIZE)
private_key = key.export_key()
file_out = open("private.pem", "wb")
file_out.write(private_key)
public_key = key.publickey().export_key()
file_out = open("receiver.pem", "wb")
file_out.write(public_key)
to_send = public_key.ljust(BUFFER_SIZE, b';')
@ -96,25 +94,32 @@ clientSocket.send(BEGIN_MESSAGE)
clientSocket.send(HEADER)
clientSocket.send(to_send)
clientSocket.send(END_MESSAGE)
print('ok')
# BEGIN
chunk = clientSocket.recv(BUFFER_SIZE)
print(chunk)
# HEADER
crypted = clientSocket.recv(BUFFER_SIZE).rstrip(b';')
# AESKEY
for i in range(60):
crypted += clientSocket.recv(BUFFER_SIZE).rstrip(b";")
# END
chunk = clientSocket.recv(BUFFER_SIZE)
print(chunk)
# HEADER+AES key are encypted in same time, so decrypt thme at same time
# HEADER+AES key are encypted in same time, so decrypt time at same time
cipher_rsa = PKCS1_OAEP.new(key)
texte_to_decrypt = b''
for ligne in [crypted[i:i + BUFFER_SIZE] for i in range(0, len(crypted), BUFFER_SIZE)]:
to_decrypt = ligne[2:]
print(ligne)
print(int.from_bytes(ligne[:2], byteorder='big'))
to_decrypt = to_decrypt[:int.from_bytes(ligne[:2], byteorder='big')]
texte_to_decrypt += to_decrypt
texte = b''
for to_decrypt in [crypted[i:i + int(BUFFER_SIZE/8)] for i in range(0, len(crypted), int(BUFFER_SIZE/8))]:
for to_decrypt in [texte_to_decrypt[i:i + int(BUFFER_SIZE/8)] for i in range(0, len(texte_to_decrypt), int(BUFFER_SIZE/8))]:
texte += cipher_rsa.decrypt(to_decrypt)
print(texte.decode('ascii'))
print(texte)

View File

@ -1,51 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1,14 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArUCxN8128/Zck+vS0xtR
wvQFhsl44wV8I5987RNdU/sYFkoGCkMLFiXXhrcsYhzEEyKQ6ci+4OtwPtXuY9hE
8XWnmd16T6ypct41oRoCVzrlrwMsZ1rg4M5ZnuQIb+7DJmIDHn3LjYF1yDC1XhoG
1DZn+tWK1XPyCpWzjYHyUyocWiHK0lxxE3lLYj2okaWYjuwv+stt7ClpqPMjog2e
g51H99rxKEEhlt+lDYXPEfWaPB4lWjlrophFqvndnYtZMJJfHwDyysQSvcwGL01K
wKYR+URM5Lr8Zxj9xBP1v5NsxBTE1imZQ/cF7Nat4A/RCycHB4CrgtgtwlcHPJQW
F4WxJN6+THM698oNQ8jKAwIuMPHR8XHkRU6A4tPHcOgDR4Sj3WKC3Q6Cv1PvMhU8
bgfuqHk3eMCIiZNdBEn3Cl7bpvynqiIvL75pXpMsqAwzNPq5Zw7k0dTXx/yz7zDo
3mLG9BrZ3SzvWcB53hgk6K/dMY+/Y9fhwqkwzgyQ5pYMTs5lqP6qxbn+fhICEwro
eFx34QXlq/RpsxVxC4KuJ3sTrQ5cr/aZsZSQFabJYXUeev15gLeqRBTuEr+5K1Wr
FRIRomItyTeudn412nyZcd/tOakZ5X9k2eb/xuM0gsmoe9Ern1Z9OaUTHmolAK/E
z0AzpZR3VID1JVgUhpqsA1UCAwEAAQ==
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtp/nSjVpOYelOdyJxVrY
VKz0otcy33KEZeOvv3Bglq7hFySMwLLBRuC6vGCMFVVMqQFlrQ4TiD3Z8e+Xf2Uk
CAzkTNbCg/Mf66A7nruWGriFY2pg0LaFBAuxAOFHaW2B7yDm3+02atztlGFkTgDW
94gPzzhE2gZ/5fULf4wm5HkkKNiYkg7fqifoed9POV7o0xfyjTm1fRhjy/poBJev
OO1h4OMlGM5z3E8HBNceiDUwbdm6izu50HHp0AP+7Pja9uO6WuX1dK3n4wm4hrCG
pEb+h4m/kKUBEQqzjQqNWFUP4ksm4G84cFACbGwD7OGm3Y1OVYfGC6Gcus0rdZeW
cRQIb0gywOJ0OGmn5XIKGGwdso2nb0/LDrBWI8BJ7J7TNu5OKg/0kKCA188nqRqn
EXV7seIjb4rte6G8uXEaX54ZEBft4oKNfU+2kCVNJm5w1nQEOjLS9enneYnFblE0
FiN4o/G1EIfQHn/D/Yt6q/b7n96fVFJye3oXikgab31msXpCGXQnGAkbnlwbSyjx
98P7Lqg+zCFOMTu7panp0hELQRrCWJEuoDiPvOuFRLVdvYj1KocfUWKdZ0ljNMNu
0c4Ebmc8MW31WDvGWhbIsCmKg+GtYODDYIvVqEl5WnYRxLtj8ml2wq4gNRn9Y8rq
mhOXHwEoRIGKsIGSgKZrFVkCAwEAAQ==
-----END PUBLIC KEY-----

View File

@ -8,7 +8,6 @@ import os
import socket
import threading
#### logging ####
# json decoder for int keys
from Crypto.Cipher import PKCS1_OAEP
@ -82,7 +81,6 @@ VERSION = "EICP2P2 V1"
DONE = 0
ERROR = 1
#### Socket ####
main_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
main_socket.bind((HOST, PORT))
@ -151,9 +149,9 @@ class clientThread(threading.Thread):
debug("Réception de la clef RSA de %s", self.ip)
self.rsa_client = content.rstrip(b";").rstrip(b' ')
self.aes_key = get_random_bytes(64)
header = bytes((VERSION+"\ntype: init").ljust(BUFFER_SIZE, ";"), 'ascii')
header = bytes((VERSION + "\ntype: init").ljust(BUFFER_SIZE, ";"), 'ascii')
content = self.aes_key.ljust(BUFFER_SIZE, b";")
self.send_rsa(header+content)
self.send_rsa(header + content)
return
def send_rsa(self, to_send):
@ -173,14 +171,15 @@ class clientThread(threading.Thread):
def send(self, to_send):
self.client.send(BEGIN_MESSAGE)
i=0
for to_send_text in [to_send[i:i + BUFFER_SIZE] for i in range(0, len(to_send), BUFFER_SIZE)]:
self.client.send(to_send_text.ljust(BUFFER_SIZE, b";"))
i+=1
i = 0
for to_send_text in [to_send[i:i + BUFFER_SIZE - 2] for i in range(0, len(to_send), BUFFER_SIZE - 2)]:
print((len(to_send_text)).to_bytes(2, byteorder='big'))
print((len(to_send_text)).to_bytes(2, byteorder='big') + to_send_text.ljust(BUFFER_SIZE, b";"))
self.client.send((len(to_send_text)).to_bytes(2, byteorder='big') + to_send_text.ljust(BUFFER_SIZE - 2, b";"))
i += 1
print(i)
self.client.send(END_MESSAGE)
def run(self): # main de la connection du client
"""Run thread mainloop