我们正在尝试支持使用 TLS1.2 支持 PSK 和 SRP 身份验证机制的服务器。但是,当我们尝试在同一上下文中为两者运行回调时,只会检测到 PSK 回调:
SSL_CTX_set_psk_server_callback(m_ctx, psk_out_of_bound_serv_cb);
SSL_CTX_set_srp_username_callback(m_ctx, srp_server_param_cb);
如果您只设置一个回调或另一个,SRP 和 PSK 目前在我们的代码中工作。我尝试先注册 SRP,但这样做并没有改变唯一的 PSK 正在工作的事实。因此,另一种方法是在 SSL 上下文中单独设置这些。我还确认 SRP 和 PSK 密码套件在设置时组合起来不是问题。
以下是我们拥有的测试场景的快速摘要:
- 仅具有 SRP 回调的 SRP 客户端 - 有效
- 仅具有 PSK 回调的 PSK 客户端 - 有效
- 带有 SRP+PSK 回调的 SRP 客户端 - 不起作用
- 具有 SRP+PSK 回调的 PSK 客户端 - 有效
不同机制的多个回调会在同一个 SSL 上下文上同时工作吗?