как исправить ошибку рукопожатия и отсутствие общего шифра в сокете - PullRequest
1 голос
/ 08 мая 2019

Я хочу написать программу, в которой 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)

Пожалуйста, помогите, если кто-нибудь знает, как решить.

Я хочу зашифрованный сокетсоединение между двумя компьютерами для передачи текста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...