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

最佳答案

ECDHE-PSK是TLS中使用的密钥交换方法。首先,您应该查看mbed TLS TLS tutorial

然后,需要在两端配置预共享密钥。这通常涉及使用mbedtls_ssl_conf_psk()客户端,尽管理论上如果只希望与单个客户端通信,也可以在服务器端使用相同的功能,但是实际上大多数时候您都希望使用mbedtls_ssl_conf_psk_cb() >设置一个回调函数,该函数将为每个客户端选择适当的预共享密钥。

您还需要调整允许的密码套件列表。可以使用mbedtls_ssl_conf_ciphersuites()在运行时完成。另外,如果您知道只使用ECDHE-PSK,则可以customize your build禁用所有其他密钥交换,这也将最大程度地减少占用空间。

最后,您可以找到使用各种密码套件进行TLS的完全可行的示例,包括基于mbed TLS发行版中的ssl_client2.cssl_server2.c的ECDHE-PSK。您可以检查示例中如何使用上述功能,尤其是可以找到服务器端PSK callback的示例。

08-07 16:27