Second version of encrypt

This commit is contained in:
louis chauvet 2018-11-16 19:59:22 +01:00
parent 21679ebb92
commit c844449871
4 changed files with 77 additions and 79 deletions

View File

@ -14,7 +14,7 @@ import threading
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
class Decoder(json.JSONDecoder):
def decode(self, s, **kwargs):
@ -101,21 +101,20 @@ print('ok')
chunk = clientSocket.recv(BUFFER_SIZE)
print(chunk)
# HEADER
cry_header = clientSocket.recv(BUFFER_SIZE).rstrip(b';')
print(cry_header)
crypted = clientSocket.recv(BUFFER_SIZE).rstrip(b';')
# AESKEY
cry_aeskey = clientSocket.recv(BUFFER_SIZE).rstrip(b";")
print(cry_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
cipher_rsa = PKCS1_OAEP.new(key)
t = cry_header+cry_aeskey
for to_decrypt in [t[i:i + int(len(public_key)/16)] for i in range(0, len(t), int(len(public_key)/16))]:
print(len(to_decrypt))
print(cipher_rsa.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))]:
texte += cipher_rsa.decrypt(to_decrypt)
print(texte.decode('ascii'))

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-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvlMf7Wn+JRaFR4ErqgpQ
A3m86J++XPRZrKK6UJtdUqGI3XugiqbYUSr2n5+LOlfPNDQ6okcqGX+uJFaetWii
JLqzYvl+UjXwDK/jvCwlHvnjmViUw0MDzKyVfiNfwWAsoQXuQqk+vJWwyFuskxXI
QDRlHoye6KGsciweDcJjqqwurw5EbrozOeuC8pkl4gxK8xQcc6sYxc8Rs5EjYug5
qRbNw8FHiM6AIovYlrew2pzAyUDTPkOmmDZzESlmLWhTeS0GEaewvv+WX2yzE3yF
e9tSAO8SlBGaJ3LNpGIwDKgLH+9kFbQPkcLB0AnGnTAVvS/6nALWVYkXv98JacXV
GXBkWobn3IvWZ1djUXMpgs4haJfpCx5+KoRwkdBjQzPC/Ztx94lE9wd+3nNfusJV
IzZVcdfysbojbcNLnp77NYBFaAxw32U6m4jVYjAxr/NSw9VEcxiWshuv/UU3f9C1
rA3yagYOhLGCxtMiNtyXtujmmT2eVVoCePLveOWzeV+gLWm2ISU1RJ78vOhMc6T5
H9KJT4A50hI0LYa9fL141qOON3iwqzUT4dnMTfaXHXjTdybTku1es0GWkxorb2vl
I7AY9qPiuetrdW6EK5Xittc0gaeFSXwXoBAZStGk1rKy2HP1nMsfzv7MjMdqtPhI
CJ+LjgilL/ZhhfqNWwSWdIkCAwEAAQ==
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==
-----END PUBLIC KEY-----

View File

@ -151,7 +151,7 @@ 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)
return
@ -166,19 +166,18 @@ class clientThread(threading.Thread):
# RSA crypter object
cipher_rsa = PKCS1_OAEP.new(recipient_key)
# Encrypt session_key
self.client.send(BEGIN_MESSAGE)
for to_send_text in [to_send[i:i + BUFFER_SIZE] for i in range(0, len(to_send), BUFFER_SIZE)]:
crypted = b""
for to_send_text_ in [to_send_text[i:i+int(len(self.rsa_client)/16)] for i in range(0, len(to_send_text), int(len(self.rsa_client)/16))]:
print(len(to_send_text_))
crypted += cipher_rsa.encrypt(to_send_text_)
self.client.send(crypted.ljust(BUFFER_SIZE, b';'))
self.client.send(END_MESSAGE)
for to_send_text in [to_send[i:i + 16] for i in range(0, len(to_send), 16)]:
crypted += cipher_rsa.encrypt(to_send_text)
self.send(crypted)
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
print(i)
self.client.send(END_MESSAGE)