ECDHE-PSK mbedTLS 示例?

ECDHE-PSK mbedTLS example?

我正在尝试弄清楚如何使用 mbedTLS(以前称为 PolarSSL)在两个对等点之间执行 ECDHE-PSK 加密。不幸的是,我需要使用的 API 上没有任何 article/documentation 吗?

ECDHE-PSK 是 TLS 中使用的密钥交换方法。你应该先看看 mbed TLS TLS tutorial.

然后需要在两端配置预共享密钥。这通常涉及使用 mbedtls_ssl_conf_psk() client-side and, though the same function could in theory be used server-side too if you only expect to communicate with a single client, in practice most of the time you'll want to use mbedtls_ssl_conf_psk_cb() 设置回调函数,该回调函数将为每个客户端 select 适当的预共享密钥。

您还需要调整允许的密码组列表。这可以在运行时使用 mbedtls_ssl_conf_ciphersuites(). Alternatively, if you know you'll only use ECDHE-PSK, you can customize your build 禁用所有其他密钥交换来完成,这也会最大限度地减少您的足迹。

最后,您可以找到使用各种密码套件执行 TLS 的完整工作示例,包括在 mbed TLS 发行版中基于 ECDHE-PSK 作为 ssl_client2.c and ssl_server2.c. You can check how the functions mentioned above are used in the examples, and in particular you'll find an example of server-side PSK callback