我有一些TLS交换的pcap要调试。我想像OpenSSL那样从“serverhello”消息中提取内容。在
我有服务器发送的作为bytes
对象的内容。它以b'\x16\x03\x03
开头,表示握手类型,TLS版本1.2。Here就是Wireshark看到的一个例子。在
似乎pyOpenSSL必须能够解释这样一个对象,因为这正是OpenSSL在现实生活中从网络中看到的。通读pyOpenSSL的unit tests,似乎可以模拟从线路传入的数据。在
但是,我一直无法让它发挥作用:
from OpenSSL.SSL import Connection, Context, TLSv1_2_METHOD
context = Context(TLSv1_2_METHOD)
conn = Connection(context, None)
conn.set_connect_state()
conn.bio_write(b'\x16\x03\x03...') # this goes on for a while
conn.do_handshake()
错误是OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_hello', 'parse tlsext')]
,这有点有希望——它在做一些的事情。正确地编写“Client Hello”而不是“Server Hello”会产生unexpected message
,而编写乱码则会产生wrong version number
错误(这也有意义)。在
我的目标是使^{
目前没有回答
相关问题 更多 >
编程相关推荐