Есть ли модуль для управления SSL-связыванием в python, как на стороне клиента, так и на сервере? Модуль SSL по умолчанию для python отлично подходит, но рукопожатие автоматическое. Мне было интересно, если есть модуль, который позволит мне сделать это руководство похожее на это:Модуль для управления SSL-связью в python?
import SSLManuel
import socket
s = socket.socket()
s.connect(("server.com",9999))
ClientHello = SSLManuel.generateClientHelloMessage(ssl=TLSv1_2, cipher="ECDHE-RSA-AES128-GCM-SHA256", server="www.server.com")
s.send(ClientHello)
ServerHello = s.recv()#this would receive the server hello
#This would verify the certificate of the server
if SSLManuel.check_cert(ServerHello) == true:
Pre-Master-Key = SSLManuel.generatePreMasterKey()
ClientKeyExchange = SSLManuel.generateClientKeyExchange(Pre-Master-Key)
ChangeCiherSpec = SSLManuel.generateChangeCipherSpec()
ClientFinished = SSLManuel.generateClientFinished()
Sessionkey = SSLManuel.generateMasterKey(Pre-Master-Key)
s.send(ClientKeyExchange)
s.send(ChangeCiherSpec)
s.send(ClientFinished)
ServerFinished = s.recv()
#This will check if the server is ready to communicate securely.
if SSLManuel.checkServerFinshed(ServerFinished) == true:
#I can now use the SessionKey to encrypt data to and from the server
s.send(SSLManuel.encrypt(SessionKey, "GET/HTTP/1.0\n\n"))
response = s.recv()
print(SSLManuel.decrypt(SessionKey, response))
Я надеюсь, что соглашения об именах, используемые в данном примере, может помочь вам понять, что я пытаюсь сделать. Большинство моих знаний о SSL происходит от This Article. Я попытался написать свой собственный, но потерпел неудачу, и я не могу найти какой-либо модуль, который позволит мне это сделать.