diff --git a/client/main.py b/client/main.py index 7d59c09..f7d66e4 100644 --- a/client/main.py +++ b/client/main.py @@ -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')) diff --git a/client/private.pem b/client/private.pem index 99dfd9c..8fa5873 100644 --- a/client/private.pem +++ b/client/private.pem @@ -1,51 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -MIIJKAIBAAKCAgEAvlMf7Wn+JRaFR4ErqgpQA3m86J++XPRZrKK6UJtdUqGI3Xug -iqbYUSr2n5+LOlfPNDQ6okcqGX+uJFaetWiiJLqzYvl+UjXwDK/jvCwlHvnjmViU -w0MDzKyVfiNfwWAsoQXuQqk+vJWwyFuskxXIQDRlHoye6KGsciweDcJjqqwurw5E -brozOeuC8pkl4gxK8xQcc6sYxc8Rs5EjYug5qRbNw8FHiM6AIovYlrew2pzAyUDT -PkOmmDZzESlmLWhTeS0GEaewvv+WX2yzE3yFe9tSAO8SlBGaJ3LNpGIwDKgLH+9k -FbQPkcLB0AnGnTAVvS/6nALWVYkXv98JacXVGXBkWobn3IvWZ1djUXMpgs4haJfp -Cx5+KoRwkdBjQzPC/Ztx94lE9wd+3nNfusJVIzZVcdfysbojbcNLnp77NYBFaAxw -32U6m4jVYjAxr/NSw9VEcxiWshuv/UU3f9C1rA3yagYOhLGCxtMiNtyXtujmmT2e -VVoCePLveOWzeV+gLWm2ISU1RJ78vOhMc6T5H9KJT4A50hI0LYa9fL141qOON3iw -qzUT4dnMTfaXHXjTdybTku1es0GWkxorb2vlI7AY9qPiuetrdW6EK5Xittc0gaeF -SXwXoBAZStGk1rKy2HP1nMsfzv7MjMdqtPhICJ+LjgilL/ZhhfqNWwSWdIkCAwEA -AQKCAgAEJMV9rZXpvcyctWxmG9UJIQCNZKjy13kPqqKkIvXMWOr6E3kie6ZwV0nz -ng1xxuaidtP4o38AUMjRpAx5hkkoGTkoRFFNPee3hv7OInyTvjyyd9IT/DoGyJJ1 -TWowyMS/+WPqEfWP39xvnZtWFR59KLGI5uaGHxBPk16mIwojdZ3glCQbmwncJCCq -N85c1l1YCc3ixiIDGyfXVnzEPapqYC44/v9tND29mCODiIVHr9ZSALYjVWVjoU/Z -BaM4BYedDES6ZAG+RCHvJZaH1pQGEczTwLYRVjQafBk2ZSgxpljzqDUaydxK6p1o -nPCKNzlJ8Kj5S5CEtTg4plpLR2eFHW0IRj3t8w8jEXINzqWd+Hk8HWbQawLjBt5q -5kw8G0DsybD9IjD2/C5L/xc59iAr+ca8ISecpbyezr3KGAC99PpzbyIZOI3Pi/l8 -qu8LyWcXvW0eVHfHFu8kRGyJ/QAj3CYNKsJj97n1GmQ/onz2yg0c1zlWxxqI2EGC -svr2zafexmSy0ChnYPvXvW3xqYLgdTSPIUKuXilAxVn2KQ7JuLMkxaKy6SCsuSkA -OJYMRniXkjQ0PGf/2K+YiElR231zM0rMKtESjjkZ2FeGxqOrMFxuR5YQ5d0j6boB -pfC88zsTpOOSB8BVdXwLm5o/SDV1k3WcrpHTcxIowd596nK2VwKCAQEAxQYx/jc8 -78sEImEglu9XnrRxml7E6Kj3KuK4/L9QbykTKx5FZL/LRADUnnRY1p3dIW4t27BJ -AxFIaT52CE1NDNOODH301mgKMZfuwOZGrjKnU0LTVGlMiEaa6TP4Au0XmrMrXjgM -Tei4xpEVjqlSQmWK43lyBoZSOw5BUDm53F/+ubv/tTwL/+7S8FT2Q2hRZhhbVvp4 -3SN6uZxbNMwlDelK7trXuq8y8WDljp9vhl6dh31Gq9FsyoUWgiLDeJw+uqa1AjK0 -NMx6gT5eVg2lXCHwjzD0GRRRlRrHhSuhyhUvEHoP6IfTA1k2fqeI30V4twxFh5iq -/e/my8k5MfwIGwKCAQEA90uNd6N2MiRsZwOzUjVVTWlUpvQiLbRM5qWKthJ1DsFS -D9cIFOSmT2NVRHKf6As5LD/x69vv2CAh8A6+OxX6Usb4qkz7AdLwO1Wd8PIcbapq -0g1jy5Lv7dtWp9KnnRQM4LVGduBMK+A87ys+5VexHBm7AwEX/uScojnbmo9Jhg9z -7Oybd7Waku8LM64XXCVuF1WIRf0AH99H6LfXGgrl4x4JUJsl5GJgpr390Oipwdue -impX/PjKiyTD0G16nVFxQBWvDmbnAnyjpmzsd+FrTd4XckaNFC5/KBZl4jfrBhhv -pufIsXzDxGX0LPqDe3ekKsnWCFQxjzm0OrZqUYTIKwKCAQAQ2OrFdiu7xXxhBDUp -MuYnJ/7e2GO2EVyxShnPYvyZxMVi1n/QkaXr9rY3pnNCRtV12loJgxV7MasjdLfb -FeEUy7JF1y9sdhEJFJjR3d8FXkd4kypG+YoVzRPKBSub9HIkRFXdBKXos5G5SQay -4D+sdcpekS/y5uF5M0radVUzRvIdJ7pB4RSVmfJnopw8P1tWg5ar5VcYccQ4wun5 -pcs1WVGTAxuXVwvgIA0BGRkMQGLwBwJYBtxqpN672gUk9xdWFpM70OIf8aw4CQFA -EoKlUjGjzOfSjS48tcGB3a1D/nO70PQzSgn9K0/BnMnTbblYza/UXHWiqTTvEBHX -+FkpAoIBAQDdh9QaKdfXQWPOwLTiXx6kc0g/K5J2qP7+26swQcaVSj9OK051EQOf -OJgI8jonb+5uonYA2Qy56sccOsjVO3H8t3vJa56sWp+UN7V+RBWNdE2vEAmnM2E2 -DfhJ7N70SyLiJeIS2gnCgGV1x6LXZsAlMTOjlFY/o+JhPT1p7xRpQOyTgL4g9hGb -sQKy8DDC/lDqHFgwgl2bL7VGV3IdRUf9NkoX6HSAbFSy6p42iEaSgEA9NNjPqLwg -+/VigMCHr46pXwNr/mjRhIBBtW/8UHaE0gDlASievKxyZ+YrSfaDhl53AUp7HQ5u -oPqlVGF2uI3bOuY+ndWrvYCj3AfQMQfzAoIBAFeBXauBLB3h0/6j1fEfBKVttieQ -imeMnQPKz2O26+/iMMOAcXTv+PiP+f5N0AbUq5W5A6ejhz5PqyiUSvO9X9E1ZWKX -55CRL+aHbnvVCfB+/fVyImGMaQ3RtxgA6WtBPgYeiOu3jtx4+NyAV/r1z7di/Y8A -HuxjotGMZEccqHL411qiC9fv3kw8iD3gO0qgrx5sXygt/zuKXllQEjS6ShRXBH1e -1kCXstGWvoK1ZMPa3RAPlxd0kSD1OXmdAGBsVw875h50+veax7iAjwZpBzSo4Tol -kGJL6ccxysxcllnmlJnjC/c6HjPsFI5T3QAnXn21zvwvbmuQAtYKhASgmfE= +MIIJKQIBAAKCAgEArUCxN8128/Zck+vS0xtRwvQFhsl44wV8I5987RNdU/sYFkoG +CkMLFiXXhrcsYhzEEyKQ6ci+4OtwPtXuY9hE8XWnmd16T6ypct41oRoCVzrlrwMs +Z1rg4M5ZnuQIb+7DJmIDHn3LjYF1yDC1XhoG1DZn+tWK1XPyCpWzjYHyUyocWiHK +0lxxE3lLYj2okaWYjuwv+stt7ClpqPMjog2eg51H99rxKEEhlt+lDYXPEfWaPB4l +WjlrophFqvndnYtZMJJfHwDyysQSvcwGL01KwKYR+URM5Lr8Zxj9xBP1v5NsxBTE +1imZQ/cF7Nat4A/RCycHB4CrgtgtwlcHPJQWF4WxJN6+THM698oNQ8jKAwIuMPHR +8XHkRU6A4tPHcOgDR4Sj3WKC3Q6Cv1PvMhU8bgfuqHk3eMCIiZNdBEn3Cl7bpvyn +qiIvL75pXpMsqAwzNPq5Zw7k0dTXx/yz7zDo3mLG9BrZ3SzvWcB53hgk6K/dMY+/ +Y9fhwqkwzgyQ5pYMTs5lqP6qxbn+fhICEwroeFx34QXlq/RpsxVxC4KuJ3sTrQ5c +r/aZsZSQFabJYXUeev15gLeqRBTuEr+5K1WrFRIRomItyTeudn412nyZcd/tOakZ +5X9k2eb/xuM0gsmoe9Ern1Z9OaUTHmolAK/Ez0AzpZR3VID1JVgUhpqsA1UCAwEA +AQKCAgAjgIWwJyjQfjPjVeg6PTdoaSO2xpNAhg+1pwls9VJjEqmRa7LIKIvdinyb +TO7J3hYpy6QBXBMNOQGjxqfWius5xX/GLlXRfNKuSK2ZqSBAqr+FOPPA7CT3vCEu +R5EZCsavl1cHSQTMpvIxRxXrRg8PLmTpSBfufJdlJt8HyNCUzSTJLXKH38yGDo1t +gLAJxHK6GtkMHeKVCblulwA+xWatlq24MwPG2W3eIk8KsdhIWFk2J4FE905An85q +5k/M6FCq/NuEGWgnN72Vafj8eWyvhHhbaW0OU+jD4aGiq+poSvf3SEA7mIOhIz3y +Fd3Ec8lE7Ubp+SpsIgtibv37ImdSLVGTuqdY6OMWOpjkVLDt83NQeDb2CUFizdn7 +X+lrUvKHClk6nqeMGAQVmbAoj0+Q6mJvF9rfswrhlzkn/cZlJd75F9VCfKMKI4BW +rfMwOF4ORMf6+NC4zBNJAHWEzhtTt52XYIs0/YQLp7t6YNZ7TaxDB8NEcMXomqUT +pSi8UyWx68Lw6ZYH3BiVU42sRtQeEFyM08QwZZiIfEIn/jeyRyBPOKMFsOpvx4bS +54yPuLYa9Y69tN9y4QEuse8HXe5BnPwYSFODh3daCw/j6TkP2iHH042/oFr/18IL +tYYp+8LKzPJ3yP0e4haDSwx8YomG10ZbKouTDeDst/U0Dp56wwKCAQEA0Yk5r755 +q6dxnHGoDNjCsfZs6P/pylDcz6Glq8mypb8K74z6QaWq5T3l01pu/LGIEKURzdX8 +splYz0QCG8G0p8XnnQC/7DVpsKaZuDAYaXbWLe0hP4fZ57dpGp0/2as27ILfl2/Q +TyXfaEHgeJo5vqt0t1UvxlntrXtIgc+t47NBeovJMftFZY7p/C1+xwK/bgwieIuS +ttZAxE6Ts+3w7ubfvXRT9ez1ZzcsD3JwgsyhkWMWTsQxOcoD9Dkr53Hq35IRlIgt +h6OzUgEF78NpyXLFBINJvp19qWNkOf57bi4kQKSGIfn76qa5UeLQ4zFbBkTjk4B4 +53D0k+7WfP5+AwKCAQEA06vDfbT7lBQ2gy1aJeMJk+AKpqZaV/jlV0r08w77EiCD +hC9zKrw4/ABpuVqWjpDSis451svaNK1nOcGfMyDuDFSH1rWxF40o5GBkt7kzUJv4 +kiNJyddDCVPu6jMGnbjSBScTn9W5ZZtTBdtJoQMgjUIA76paufq2667/KnZ31+3h +njdwcgQLaFGzDysFd8mbc5lUKILNsLvi2M8yujxnyhagLVKlTJa5QuLP3mVRlpqP +XHsn78XG5v8e0JNtIGXzjMsf1LHDZS+SaZRTDmxsgWNOFSapDoNmD/8VCX+LDVhO +BOsWIJqJt4mU9aUt+mxK2trIDGggF5iiGFaaIXYFxwKCAQEAzQtADB6U6ckdgD4o +eQnU3FmNEiT8HyMqMXS5rnXeABwHE4wdiQgZR+Ned4jTeywvPjqKRabVdeBh69Fd +TtQreNJNaHJHXVqXZmphmsBV4z6LML4P/x9tuTbd/1FKHjNRt/gJ3SNp8UnaaSeu +BdbGEzOtL4qJCc0OrOkrdvxH6b6MoOMRq3t72XoUttW+bfjeY040nUnX9FuNXYyX +NUfusZnz8G1ZjBqpuqtezm7qctTUdnVEayfKFAb//4nC0OXFNaq20WbBRy6GWATw +TkQnzR4mddgT3hg30/6TIb1KA/PbPfbB25XJU0J7rwoJ54lwzZ20Ja9eoP0EGY9r +DT3tCQKCAQEAqn9fX0FJp/REGJOOWpgvHcrIKYYznUrhyNeayLGXcPl5lh72YETu +jaXzgxbB0SI8RQxqMGdRYz8Nt8sLZg6vUIVCSaNeez774kD2v7pQ6CxKI8SC6i8X +U0slVcY2HRNDMF1ShFuOE5byX/RLsYMoVEAHKwWIQOf/MYZrCJQWYnq9UkkLrPsv +CR9N4PjhVaSyL4Ig9OSvtB0TU1pKXRLM804YRYmdljyOC59Qmq338xyaP38AIzWm +ymhTNOSbcQ5OCGmRQSzS3A1enOaZpDOXjv0jZwwV/pe+vUHVeyoeImivp2yJDUgN +iCYtM1SS3XUfMnwpyTySJQ+P+ZTAYBWF/wKCAQBbs36aYlQo4dU9tiQz3eYFg2ah +/jc926b/LZK7r74/ohD0w10H4r1gf/6HXK/y4A2gy/Ut9p3I6Wf81UhoDrEt5AZW ++HyV0fGDIAz2K7Oij8ZBuoG6WNf/JmFifEsBndxIya+XMququ0cE/43premlG7+B +6Xo2Lauw8LIFx+2HAGj9pFtwVkjdL3kj11lg6qHfIWTGHdHP8Sgv+Y5+SInTcY+U +IU0YC1O/NDDXVZpVBCFPhpRNejw+u6aZfXWEY9WRxXnLrpj665/jkMArG7idYgjX +w4hMBTVZUhhfgZjMOP7a+I8bB7ySSVl0TGoDLDyPptWnnMv9jqWLlAb7WN5F -----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/client/receiver.pem b/client/receiver.pem index 5e5e993..d11683f 100644 --- a/client/receiver.pem +++ b/client/receiver.pem @@ -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----- \ No newline at end of file diff --git a/server/main.py b/server/main.py index a650e64..74a4052 100644 --- a/server/main.py +++ b/server/main.py @@ -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) + crypted = b"" + 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)