python - 在 Python twisted 中创建受控的 TLS 对话并将其存储以用作测试数据

标签 python ssl automated-tests twisted

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

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

最佳答案

最终,Twisted 只会将 TLS 传输到传输层并将字节转储到其中;您可以根据需要指定配置的 pyOpenSSL 上下文对象。所以这实际上更像是一个关于 pyOpenSSL 或密码学的问题。

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

关于python - 在 Python twisted 中创建受控的 TLS 对话并将其存储以用作测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794943/

相关文章:

automated-tests - 使用 Microsotf UFT 单击 Web 元素的子级 Web 按钮

python - 使用 format 方法打印一个整洁的乘法表

python - Pandas:根据名称中的分隔符拆分多值列

ssl - 客户端如何在 keystore 中设置证书链?

java - 我可以使用 URL 路径设置 Keystore 属性吗?

ssl - 远程登录到 gmail.com

entity-framework-4 - 允许 Entity Framework 4.5 将 datetime2 与 SQL Server CE4 一起使用

python - 在 Python 3.2 testenv 上运行 tox + nosetests

python - python 为什么比 C 和 C++ 运行得更快?

python - 一行代码 python 中的七 (7) 个 boom 游戏