OpenSSL 是不是有任何“读取”数据的事件回调函数?
Posted
技术标签:
【中文标题】OpenSSL 是不是有任何“读取”数据的事件回调函数?【英文标题】:Does OpenSSL has any event callback function for 'Read' data?OpenSSL 是否有任何“读取”数据的事件回调函数? 【发布时间】:2010-08-02 20:36:30 【问题描述】:当 OpenSSL 有传入的“读取”数据时,我正在寻找事件回调函数。 OpenSSL 有这种功能吗?如果是的话,请给我一些示例代码好吗?
我正在考虑为我的应用程序编写一个简单的包装器。当数据到达时,此包装器将进行回调。我最初的想法是创建一个以非阻塞模式循环的线程来扫描任何传入的数据。当数据到达时,我会进行回调。我在这里做对了吗?
非常感谢您的回答!对不起我的英语。
【问题讨论】:
【参考方案1】:Boost.Asio 支持异步 SSL 读取操作。
【讨论】:
感谢您的推荐,但有什么更具体的 OpenSSL 吗? 我不知道特定于 OpenSSL 的回调。【参考方案2】:CyaSSL SSL library(类似于 OpenSSL,但具有更小的占用空间和其他很酷的功能)具有类似于您正在寻找的 I/O 回调,我相信。
在 CyaSSL 中,输入/输出回调的原型是 ssl.h 中的 CallbackIOSend 和 CallbackIORecv。这些函数需要通过 CyaSSL_SetIOSend() 和 CyaSSL_SetIORecv() 为每个 SSL_CTX 注册。默认情况(CBiosend()和CBIORecv()注册在cyassl_io.c的底部。
CBIOSend 和 CBIORecv 函数指针可以指向您的自定义 I/O 函数。您可以使用默认的 Send() 和 Receive() 函数(EmbedSend() 和 EmbedReceive(),位于 cyassl_io.c)作为示例。
问候, 克里斯
【讨论】:
以上是关于OpenSSL 是不是有任何“读取”数据的事件回调函数?的主要内容,如果未能解决你的问题,请参考以下文章
在 Node.js- 事件(EventEmitter 和 Listener Function 对象)与异步回调之间是不是有任何关系