Я хочу написать программу, в которой 2 системы обмениваются данными друг с другом через SSL-сокет.
, но клиентская система и система сервер / хост выдают мне ошибку сбоя при рукопожатии и общий шифр.
вот код сервера -
from socket import *
import ssl
import time
context = ssl.create_default_context()
while(1):
HOST = '192.168.1.172'
PORT = 8000
sock = socket(AF_INET,SOCK_STREAM)
sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sock.bind((HOST,PORT))
print ("here0")
sock.listen(5)
print ("here1")
sock1 = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_TLSv1,
ciphers="ADH-AES256-SHA")
conn,addr = sock1.accept()
print ("here2")
i=0
while(i<10):
print ("here---")
conn.send(b'$$$')
time.sleep(.1)
sock.close()
ошибка -
line 18, in <module>
conn,addr = sock1.accept()
File "/usr/lib/python2.7/ssl.py", line 882, in accept
server_side=True)
File "/usr/lib/python2.7/ssl.py", line 353, in wrap_socket
_context=self)
File "/usr/lib/python2.7/ssl.py", line 601, in __init__
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 830, in do_handshake
self._sslobj.do_handshake()
SSLError: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:590)
код клиента
from socket import *
import ssl
while(1):
HOST = '192.168.1.172'
PORT = 8000
socket = socket(AF_INET,SOCK_STREAM)
socket.connect((HOST,PORT))
print ("here0")
#ssl_sock = ssl.wrap_socket(socket)
#ssl_sock.connect((HOST,PORT))
socket1 = ssl.wrap_socket(socket, ssl_version=ssl.PROTOCOL_TLSv1, ciphers="ADH-AES256-SHA")
i=0
while(i<10):
print ("here---")
recv = socket1.recv(20)
print ("here1")
print recv
i = i +1
socket.close()
----------------------
error-
line 14, in <module>
socket1 = ssl.wrap_socket(socket, ssl_version=ssl.PROTOCOL_TLSv1)#, ciphers="ADH-AES256-SHA")
File "/usr/lib/python2.7/ssl.py", line 933, in wrap_socket
ciphers=ciphers)
File "/usr/lib/python2.7/ssl.py", line 601, in __init__
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 830, in do_handshake
self._sslobj.do_handshake()
SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)
Пожалуйста, помогите, если кто-нибудь знает, как решить.
Я хочу зашифрованный сокетсоединение между двумя компьютерами для передачи текста