[TP06] Finished

This commit is contained in:
Afonso Franco 2024-03-19 23:02:05 +00:00
parent c2f25b8c2d
commit 11b24d0426
Signed by: afonso
SSH key fingerprint: SHA256:aiLbdlPwXKJS5wMnghdtod0SPy8imZjlVvCyUX9DJNk
13 changed files with 491 additions and 0 deletions

View file

@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFNjCCAx4CFGSZbSria3qoknW9iRTcFFIuCAwyMA0GCSqGSIb3DQEBCwUAMFQx
CzAJBgNVBAYTAlBUMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQxDTALBgNVBAMMBE1ZQ0EwHhcNMjQwMzE5MjIx
NzM4WhcNMjkwMzE4MjIxNzM4WjBbMQswCQYDVQQGEwJQVDETMBEGA1UECAwKU29t
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRQwEgYD
VQQDDAtleGFtcGxlLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AM6H/Fi8AeocrnwRvJDDw6GW5yZIFG3tm59rBgCxOFgcmnox+1Hxtbk1JKsU5zu7
Dp9/JBhfZ+AAAJDa9X8ArzhoegwiI84RYH4BrJrBGfer3Hw/ABlopawoLIwb62XC
P377Bz6QeoHE9ou3/X6otXZpFwx6d9G+JhyssroJ/UJWpjcCtl7GS22bWP4PPnXA
oHgogLD0gbOp/uAczUomsQGFlLCdr9OPJU7kwmlksBZEQ42GW+3X7M8CVTZ0WMGy
J2mYMOlHNEmjWKosK+QlAcN5NsbmWF2zE9Dn5oQNeuNvE0wrdioqnY6Nc1wgmX8t
Id3oKTPF1cRT8ngZzLdFCueIV16YtX8APY2SoxqvUn3m4QxFqSlVMqpDhZSmrIGB
KtJRCugdfQlfsBmdRO6Cfe/0/qv6AJhynE+Y2YqWJScLEPKcP0uAMPk90+oOh/hw
XefLnEk8yXDhbe6XkHWDZ1lhPRg5lBT+tEeTXx7s3N79Rki5Oa2F1DDN7WmKyOgz
kWDB0PuGB0ZPxRVH+aw4wzjBdXRmHx08WaMfp7mfZjIY3WHHLmXk0y/LAgBodocw
eZpP3H7JJi85Nv16xH3XocDU979PvKASoLJ5SDTuG2N+sUHi6bVvpEgcfQDLgGEh
speM07gC5GFa+yz3rGga9EAhfTB2z1mI7aJLMHZVlYtpAgMBAAEwDQYJKoZIhvcN
AQELBQADggIBAGXddzeOBri9vrp5e7vcNuBSzhPrxpKoubX4DY/861XlIqGwhWdm
DuOOafIy7GZesoERanIBIDgSnzT6trorBDxhM5iBBdDq0hHREAOsFThvqfXXZqJd
MUyspGN9pSFJw8wOyAeSx7K+FW8tyComYuZkrupmS0nlkRke3NAM/cQKAi3ezPRt
MJyCpDcvxLz8tLhKLL/PtYy0VBqHEr6Bn4PDtXUv0p00JOHK/Ki0gAAs1YS+7kPA
cQuiuN7fWBBEauBoydnV+CgvQHTM/8UU+kBeVJWkPwYMXg/JVZc7vqNhb0r+fUjz
qwfkwa6N9ZXroE3iaHoyfumQ6XO9Rf6TU1zixrQt+YxhEcdepCw8T5GStpNTUXRH
1DKXHvqS1NfNgTqD2dFWclcdjommgORS6PphnsaWG/4ifc+pZtEyfLxT/GsJJpCu
jYCEudp/Y/UplKxb+nKWQulakj1m4RZMsrn/C145FSjDjyfMnrUrKkvI2j4M6Tt0
EM8k30yVRunDmgC+gAI8nBxli6U7b9eezaQlI/5E8R32YRhSGoLqC89ZhIB9MlOh
+Z+5URiHPvcwt0RXwiQ49Tr412kMvtCUvpgI6Ukx11adzByvou9Yp/Hin6bmOaeR
yrtJvq6hdjifL4h+a4dFfOHgM9MmHiHNzFoKOukYHscpx4STNaMDqRqI
-----END CERTIFICATE-----

View file

@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIEtTCCAp0CAQAwWzELMAkGA1UEBhMCUFQxEzARBgNVBAgMClNvbWUtU3RhdGUx
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLZXhh
bXBsZS5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDOh/xYvAHq
HK58EbyQw8OhlucmSBRt7ZufawYAsThYHJp6MftR8bW5NSSrFOc7uw6ffyQYX2fg
AACQ2vV/AK84aHoMIiPOEWB+AayawRn3q9x8PwAZaKWsKCyMG+tlwj9++wc+kHqB
xPaLt/1+qLV2aRcMenfRviYcrLK6Cf1CVqY3ArZexkttm1j+Dz51wKB4KICw9IGz
qf7gHM1KJrEBhZSwna/TjyVO5MJpZLAWREONhlvt1+zPAlU2dFjBsidpmDDpRzRJ
o1iqLCvkJQHDeTbG5lhdsxPQ5+aEDXrjbxNMK3YqKp2OjXNcIJl/LSHd6CkzxdXE
U/J4Gcy3RQrniFdemLV/AD2NkqMar1J95uEMRakpVTKqQ4WUpqyBgSrSUQroHX0J
X7AZnUTugn3v9P6r+gCYcpxPmNmKliUnCxDynD9LgDD5PdPqDof4cF3ny5xJPMlw
4W3ul5B1g2dZYT0YOZQU/rRHk18e7Nze/UZIuTmthdQwze1pisjoM5FgwdD7hgdG
T8UVR/msOMM4wXV0Zh8dPFmjH6e5n2YyGN1hxy5l5NMvywIAaHaHMHmaT9x+ySYv
OTb9esR916HA1Pe/T7ygEqCyeUg07htjfrFB4um1b6RIHH0Ay4BhIbKXjNO4AuRh
Wvss96xoGvRAIX0wds9ZiO2iSzB2VZWLaQIDAQABoBUwEwYJKoZIhvcNAQkHMQYM
BDEyMzQwDQYJKoZIhvcNAQELBQADggIBAAooNMiAJVpxbjO0WNJtw9ufvXHY4Nm0
yuvIApJ+A7vpk/sNGn/YqQ5mDdxI+6CO9X8q6eXiYaUHuq3cAX8cq4EpTwk2ZTxe
CdgDNmeZyXrYCfsUGkl2+5DEe13Z051/BtGL+15phcdpCJK/H+o8gk+Kp7mEMbyL
jWXOFmo0PmG6PcJRiSBu3Xi9ZrLZWZ2eEZ0NRDcTtOdywBKBbZVcFg1aSpy5XMLQ
X8cJgJXI5P6fAQWFrkDnwp7IUqcSChDhhPqHvsW4OZqKwzs0gem5yPvt8W6hnTf4
NUJYSD/9MRUY+o1vepzs7plffUFX6KwhfFxXsGMU/z5tkWog2TYKecfL0vLiZnvk
XOxIsdsZTEG6HfAhWrslz0Aww4w71nU51GyX3Nufqg5nFio9LMRLCruU47lUPest
V30LdmvbH85ZQXICMgMUPuTlOJ0IVIPLdMxWsPkYYqhrzee4f4PMxyWeNO5/07q2
mHq/WTv6EhRuj62W8UM9zvW4et+S1AzYO9ni00FnbNgIDukGAPgP/e3IT8sFwPp+
WXCDTQcCMhNGYT/xI7/psURdnSsA4HbnXBB1nmiNCx1FWSoSbkqmBE7pLF6EQsbe
6/DUAAoeywx7aIp/fE8Rn/ds4zN0SpPnU/hztZmFy/0F+t6la1UvZl3iAm2O2zD6
j9Xx8GzQvQ3S
-----END CERTIFICATE REQUEST-----

View file

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
FymzYz4Gv0oJMuk7jQjEQcyszeERzORj
-----END PRIVATE KEY-----

37
TPs/TP06/server/server.py Normal file
View file

@ -0,0 +1,37 @@
from socket import socket, AF_INET, SOCK_STREAM
from ssl import SSLContext, PROTOCOL_TLS_SERVER, CERT_REQUIRED
import ssl
ip = "127.0.0.1"
port = 8443
client_cert = "client.crt"
server_cert = "server.crt"
server_key = "server.key"
context = SSLContext(PROTOCOL_TLS_SERVER)
context.set_ciphers("TLS_CHACHA20_POLY1305_SHA256")
print("Using Cipher: ", context.get_ciphers())
context.minimum_version = ssl.TLSVersion.TLSv1_3
print("Minimum TLS Version: ", context.minimum_version)
context.load_cert_chain("server_cert.pem", "server_key.pem")
context.verify_mode = CERT_REQUIRED
with socket(AF_INET, SOCK_STREAM) as server:
server.bind((ip, port))
server.listen(1)
with context.wrap_socket(server, server_side=True) as tls:
connection, address = tls.accept()
print(f"Connected by {address}\n")
data = connection.recv(1024)
print(f"Client Says: {data.decode()}")
while True:
message = input("Server: ")
connection.sendall(message.encode())
if message.lower() == "exit":
break
data = connection.recv(1024)
print(f"Client says: {data.decode()}")