在Python中创建一个受控的TLS会话,并将其存储起来用作测试数据

时间:2015-09-26 07:57:26

标签: python ssl automated-tests twisted

我用C ++编写了一个TLS解析器库,现在我需要编写单元测试。该库只是提供TLS数据流,它在TLS协议中调用某些事件的各种回调。我正在为客户端和服务器端搜索TLS协议的Python实现,这允许我使用我选择的参数(密码套件,证书,传输不同的TLS协议消息等)创建多个确定性和可重现的TLS数据连接。并同时将流量转储到原始二进制文件中。

twisted是否允许我创建这样的测试设置?如果有,是否有任何代码示例可以帮助我启动这个项目?

1 个答案:

答案 0 :(得分:1)

最终扭曲只会将TLS告诉传输并将字节转储到其中;您可以指定您喜欢的pyOpenSSL上下文对象。所以这更像是关于pyOpenSSL或Cryptography的问题。

TLS握手通常涉及在各个点生成随机数据(会话密钥)。虽然我认为可能可能通过插入生成非随机随机数据的特殊ENGINE来使OpenSSL做一些完全确定的事情,这是Twisted TLS工具链的用例绝对不适合。 (例如,随机性在OpenSSL中始终是全局的,即使SSL堆栈的其他部分是SSL_CTX的本地部分。)