CA MARCHE

This commit is contained in:
Fomys 2018-11-19 22:41:39 +01:00
parent 8fe90ac427
commit 5c3394c28e
4 changed files with 80 additions and 94 deletions

View File

@ -12,12 +12,12 @@ try:
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
from Crypto.PublicKey import RSA as RSA from Crypto.PublicKey import RSA as RSA
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
from Crypto.Cipher import PKCS1_OAEP from Crypto.Cipher import PKCS1_OAEP as PKCS1_OAEP
pycryptodome = False pycryptodome = False
except ModuleNotFoundError: # Pycryptodomex except ModuleNotFoundError: # Pycryptodomex
from Cryptodome.PublicKey import RSA as RSA from Cryptodome.PublicKey import RSA as RSA
from Cryptodome.Cipher import PKCS1_OAEP from Cryptodome.Cipher import PKCS1_OAEP as PKCS1_OAEP
pycryptodome = True pycryptodome = True
@ -82,7 +82,6 @@ class MainThread(threading.Thread):
rsa = self.RsaGenThread(self) rsa = self.RsaGenThread(self)
rsa.start() rsa.start()
rsa.join() rsa.join()
print(type(self.rsa))
self.clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.clientSocket.connect((HOST, PORT)) self.clientSocket.connect((HOST, PORT))
self.initialisation() self.initialisation()
@ -93,7 +92,7 @@ class MainThread(threading.Thread):
self.send(header + content) self.send(header + content)
data = self.receive_rsa() data = self.receive_rsa()
header = self.extract_header(data[:BUFFER_SIZE]) header = self.extract_header(data[:BUFFER_SIZE])
if header["type"] != b"init": if header[b"type"] != b"init":
debug("Incorrect request type, end of connection") debug("Incorrect request type, end of connection")
return return
self.aes_key = data[BUFFER_SIZE:] self.aes_key = data[BUFFER_SIZE:]
@ -115,7 +114,7 @@ class MainThread(threading.Thread):
if data_lines[0] != VERSION: if data_lines[0] != VERSION:
raise ValueError("Version is incorrect.") raise ValueError("Version is incorrect.")
return { return {
l.split(b": ")[0]: l.split(b": ")[1] for l in data_lines l.split(b": ")[0]: l.split(b": ")[1].rstrip(b";") for l in data_lines[1:]
} }
@staticmethod @staticmethod
@ -133,7 +132,6 @@ class MainThread(threading.Thread):
:rtype: bytes""" :rtype: bytes"""
if type_ not in REQUEST_TYPE: if type_ not in REQUEST_TYPE:
raise ValueError("Unknown request type") raise ValueError("Unknown request type")
return
header = VERSION + b"\ntype: " + type_ header = VERSION + b"\ntype: " + type_
if to_: if to_:
header += b"\nto: " + to_ header += b"\nto: " + to_
@ -143,7 +141,7 @@ class MainThread(threading.Thread):
class RsaGenThread(threading.Thread): class RsaGenThread(threading.Thread):
def __init__(self, client_, difficulty=4): def __init__(self, client_, difficulty=2):
threading.Thread.__init__(self) threading.Thread.__init__(self)
self.client = client_ self.client = client_
self.difficulty = difficulty self.difficulty = difficulty
@ -182,12 +180,11 @@ class MainThread(threading.Thread):
cipher_rsa = PKCS1_OAEP.new(recipient_key) cipher_rsa = PKCS1_OAEP.new(recipient_key)
raw = self.receive() raw = self.receive()
content = b"" content = b""
for to_send_text in [raw[i:i + CHUNK_SIZE] for i in range(0, len(raw), CHUNK_SIZE)]: for to_decrypt in [raw[i:i + self.rsa.publickey().size_in_bytes()] for i in range(0, len(raw), self.rsa.publickey().size_in_bytes())]:
print(content) content += cipher_rsa.decrypt(to_decrypt)
content += cipher_rsa.decrypt(to_send_text)
return content return content
############################################ COMMUNICATION WITHOUT CRYPTING ######################################## ############################################ COMMUNICATION WITHOUT CRYPTING ############################################
def receive(self): def receive(self):
"""Receive message from connection """Receive message from connection
@ -204,8 +201,8 @@ class MainThread(threading.Thread):
if chunk != END_MESSAGE: if chunk != END_MESSAGE:
# Get content part # Get content part
# int.from_bytes(chunk[:2], byteorder='big') == Get content size # int.from_bytes(chunk[:2], byteorder='big') == Get content size
content += chunk[2:int.from_bytes(chunk[:2], byteorder='big')+2] content += chunk[2:int.from_bytes(chunk[:2], byteorder='big') + 2]
debug(b"Received : " + content) debug(b"Received: " + content)
return content return content
def send(self, to_send): def send(self, to_send):

View File

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

View File

@ -1,17 +1,15 @@
-----BEGIN PUBLIC KEY----- -----BEGIN PUBLIC KEY-----
MIICojANBgkqhkiG9w0BAQEFAAOCAo8AMIICigKCAoEAmoi9rbZ6kiCZMaLeX46S MIICYjANBgkqhkiG9w0BAQEFAAOCAk8AMIICSgKCAkEAyCjkX4LpaXrvh8oeVq6r
KQ+hN8kkt/d6VV6pH7n8Mw9Di4xc2dvosVGwBVvsDzYC4sS5+orU76ps0uvELZgQ dNLNpVBUiJxSX8CJizqB6Z/m8/4ZR69V0H/MzVjngnczA9Z2ITsIJ3ZLpGxL5TNC
Q8++2bfXXeRYWeucrZSA850vfokVKDTjkNVCJoOUGBeNgVxh2I8Mzn8logyFvbP6 4Kv5q3LKsvhuSWMTq97q2bKaeCBrROOurG5FxWrTqLHbs5U47kJEDKH6Orn42l6t
TQKRz+lY+ah7uKA2bp3PTr7uNrB4hhFvfwVBOMu9ismziBOy6Jjj4nHzhpWjPug7 jvl/74qWTRarpZ4lbNfIkbM45rp10OhZNnjCsuxlcWEhGn5bp6IrSsQ0ZIYfwNLw
cWhiae2jPdacGCmqRog1cAspiyZ7Lkg+0pUrJWMeRHtCfhA8KHwYPQj423rO7Dz6 sEDjkn/fCz9NY0ZouT8ua/RnEkW7s6KOAdoaQi6LSADq9BXK+c4Zdfb5E7ScBzHM
lAEN/yqJeU34dva+rqWFPsrrXpO5FyJwa1VWqLZQvI3KjMmGd4d2Uxp4tIkJyEwE jl10AqyNSHZ3DnFL5AEdzC4ZbmXLSbAKuglFnplKoXRZm6rUb2rWU3NDQ9LVIoUp
v7IiKKc7xcl4hoesQr4dQiBVD7434zhzvk4N1BPwq7dY0ryYYyv0UhAw3oJyk3GE OfHUD+ip6V9nuQHIS7KVHJ0hgu9s3lRwN5YwnNz5OqcxWB2eLw8PLaH0WNRTmfbl
agCejts0cej/MgugiR4qHkes59ZBd8KN96xI9J4iCSfFoOL8GqgsSYkD0rAn+JOY 9EEf2huhUpgXv/DI+7J0dfnSpxaGO0YAZnjm0x+E/ryXq3vpGb3uErgJ8iuro6MF
advvdhD+p2lok0PqaOZm702MbUO+d0NEZa18z0YrEM2ttig327g0X7o8P/zwrh0i LE7u9iiAr8HQisGiVVIPgvmns3fqHJq1tJ1p0GSjHN+Of2QQPx7TSpt/5Ew3Y/pZ
5BCVtD6qeO2RFub0sDOYvqmDP2ueuX5lWq5oERi33Yxm7cEfZMD6i8eD03QIIWIU /ho8vazIBe036v6NyENywrW+UWYWdB6m9boEcg6GElSA0kVMw37syuRw7O6FhiOw
4R4drs9VmPoqsSXPLxn0o1W7qo27rIUrfgFylmQdWPef/rsEP0RVfaLoDNL1e/Fg JZNjAMA67siio1vJfHXrzLhFmlyUzE07raMFpG4aKw2zwo4PKLSxIiU66i9/ECbJ
RNi1eeueNlFoFgob/9GNekLhjQneTnvPntbFKD0fgYcmskW48J1eCego9CXKzfH+ +3yN7p+XXljCkni7KO9JSI64hETw7BiY+S/+ZqaipnB3hWxQFsZn36RfeU/BIfGz
QMlDAknkq16ykmvyiNMisAGgxif9vnACkT4l3srHpv7PRDBR7YRS/4Yeu64FH9Oy kQ4+NdYZPgR4h64tcVv9BjZ8abqBb5id1wFRpKVDeDpDAgMBAAE=
QkX4eE9MCY8GdNfYE4Q0GQzDtmCpfAWO0oXOoFLA0CZZD4pqTKB7XnmUpjd+Wbfs
mwIDAQAB
-----END PUBLIC KEY----- -----END PUBLIC KEY-----

View File

@ -129,7 +129,6 @@ class ClientThread(threading.Thread):
if header[b"type"] == b"RSASend": if header[b"type"] == b"RSASend":
self.type = T_CLIENT if header[b"from"] == b"client" else T_NODE self.type = T_CLIENT if header[b"from"] == b"client" else T_NODE
debug("Réception de la clef RSA de %s", self.ip) debug("Réception de la clef RSA de %s", self.ip)
print(content)
self.rsa_client = content self.rsa_client = content
header = self.gen_header(b"init") header = self.gen_header(b"init")
content = self.aes_key content = self.aes_key
@ -152,7 +151,7 @@ class ClientThread(threading.Thread):
if data_lines[0] != VERSION: if data_lines[0] != VERSION:
raise ValueError("Version is incorrect.") raise ValueError("Version is incorrect.")
return { return {
l.split(b": ")[0]: l.split(b": ")[1] for l in data_lines[1:] l.split(b": ")[0]: l.split(b": ")[1].rstrip(b";") for l in data_lines[1:]
} }
@staticmethod @staticmethod
@ -225,9 +224,7 @@ class ClientThread(threading.Thread):
if chunk != END_MESSAGE: if chunk != END_MESSAGE:
# Get content part # Get content part
# int.from_bytes(chunk[:2], byteorder='big') == Get content size # int.from_bytes(chunk[:2], byteorder='big') == Get content size
content += chunk[2:int.from_bytes(chunk[:2], byteorder='big')] #+2] # Avec le +2 il me mange plus les caractères mais je sais pas pourquoi @suwako content += chunk[2:int.from_bytes(chunk[:2], byteorder='big')+2]
print(chunk[2:int.from_bytes(chunk[:2], byteorder='big')])
print(content[:BUFFER_SIZE])
debug(b"Received from" + bytes(str(self.ip), 'ascii') + b" : " + content) debug(b"Received from" + bytes(str(self.ip), 'ascii') + b" : " + content)
return content return content