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. Requête envoyée en réponse à RSASend pour initialiser la connection cryptée en AES.
### Error ### ### Error ###
Error Error

View File

@ -85,9 +85,7 @@ key = RSA.generate(BUFFER_SIZE)
private_key = key.export_key() private_key = key.export_key()
file_out = open("private.pem", "wb") file_out = open("private.pem", "wb")
file_out.write(private_key) file_out.write(private_key)
public_key = key.publickey().export_key() public_key = key.publickey().export_key()
file_out = open("receiver.pem", "wb") file_out = open("receiver.pem", "wb")
file_out.write(public_key) file_out.write(public_key)
to_send = public_key.ljust(BUFFER_SIZE, b';') to_send = public_key.ljust(BUFFER_SIZE, b';')
@ -96,25 +94,32 @@ clientSocket.send(BEGIN_MESSAGE)
clientSocket.send(HEADER) clientSocket.send(HEADER)
clientSocket.send(to_send) clientSocket.send(to_send)
clientSocket.send(END_MESSAGE) clientSocket.send(END_MESSAGE)
print('ok') print('ok')
# BEGIN # BEGIN
chunk = clientSocket.recv(BUFFER_SIZE) chunk = clientSocket.recv(BUFFER_SIZE)
print(chunk) print(chunk)
# HEADER
crypted = clientSocket.recv(BUFFER_SIZE).rstrip(b';') crypted = clientSocket.recv(BUFFER_SIZE).rstrip(b';')
# AESKEY
for i in range(60): for i in range(60):
crypted += clientSocket.recv(BUFFER_SIZE).rstrip(b";") crypted += clientSocket.recv(BUFFER_SIZE).rstrip(b";")
# END # END
chunk = clientSocket.recv(BUFFER_SIZE) chunk = clientSocket.recv(BUFFER_SIZE)
print(chunk) 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) 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'' 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) texte += cipher_rsa.decrypt(to_decrypt)
print(texte.decode('ascii')) print(texte)

View File

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

View File

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

View File

@ -8,7 +8,6 @@ import os
import socket import socket
import threading import threading
#### logging #### #### logging ####
# json decoder for int keys # json decoder for int keys
from Crypto.Cipher import PKCS1_OAEP from Crypto.Cipher import PKCS1_OAEP
@ -82,7 +81,6 @@ VERSION = "EICP2P2 V1"
DONE = 0 DONE = 0
ERROR = 1 ERROR = 1
#### Socket #### #### Socket ####
main_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) main_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
main_socket.bind((HOST, PORT)) main_socket.bind((HOST, PORT))
@ -174,13 +172,14 @@ class clientThread(threading.Thread):
def send(self, to_send): def send(self, to_send):
self.client.send(BEGIN_MESSAGE) self.client.send(BEGIN_MESSAGE)
i = 0 i = 0
for to_send_text in [to_send[i:i + BUFFER_SIZE] for i in range(0, len(to_send), BUFFER_SIZE)]: for to_send_text in [to_send[i:i + BUFFER_SIZE - 2] for i in range(0, len(to_send), BUFFER_SIZE - 2)]:
self.client.send(to_send_text.ljust(BUFFER_SIZE, b";")) 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 i += 1
print(i) print(i)
self.client.send(END_MESSAGE) self.client.send(END_MESSAGE)
def run(self): # main de la connection du client def run(self): # main de la connection du client
"""Run thread mainloop """Run thread mainloop