Не удается получить пакет serverHello - PullRequest
0 голосов
/ 04 марта 2019

Я новичок в программировании на Python и пытаюсь написать прокси, соединяющий socat openssl сервер и клиент.Теперь я сталкиваюсь с проблемой доставки пакетов

. Для подключения на стороне клиента я написал

    #client
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((localaddr, localport))
    s.listen(1)

    while(1):
        client, addr = s.accept()
        thread = Thread(target=handleConnection, args=(client,))
        thread.start()
        thread.join()

    s.close()

И на стороне сервера

def handleConnection(client):
    context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
    context.check_hostname = False
    context.verify_mode = ssl.CERT_NONE
    context.set_ciphers("DHE-RSA-AES128-SHA256")

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server = context.wrap_socket(s, server_side=False)

    #connect to server
    server.connect((serveraddr, serverport))

    t1 = Process(target=forwardTLS, args=(client, server, "client",))
    t1.start()
    forwardTLS(server, client, "server")
    t1.join()

Наконец-томой прокси

def forwardTLS(r, w, label):
    print("--new packet from ", label, "---")

    while(1):
        #receive packet
        read = r.recv(5)

        header = [ord(x) for x in read]
        payload_length = 256*header[3] + header[4]

        #receive another packet
        read2 = r.recv(payload_length)

        # deliver to the other side
        w.send(read + read2)

Здесь я застрял в функции recv со стороны сервера, потому что я не смог успешно доставить clientHello на сервер?

Информацияimage

Кто-нибудь может помочь мне с этой проблемой?спасибо большое

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