TLS - 通常在哪里为 MQTT 代理执行 tls 握手?

TLS - Where are tls handshakes usually performed for MQTT brokers?

现在我正在努力改变 EMQtt 和 Erlang MQTT 代理,以便我可以使用预共享密钥而不是非对称方法执行 TLS 握手。

到目前为止,我几乎遍历了源代码中的每个文件,但没有找到任何加密函数。所以这让我开始思考,它们可能在哪里进行?应用程序必须有一些控制权——在配置文件中,它让你指定密钥、证书和证书颁发机构证书——所以我假设应用程序确实处理握手是正确的吗?还是有一些内核接口?

如果有人能指出我正确的方向或让我知道我的理解有误,我将不胜感激!

我会猜测首先处理 TLS,然后将套接字连接传递给 MQTT 处理代码。

tserve 已经可以做到这一点,如果你不想编写自己的代码: https://github.com/trafero/tstack/blob/master/docs/tserve.md

否则,这可能是一个不错的起点: http://emqtt.io/docs/v2/design.html