我正在实现支持EAP(PEAP)身份验证的RADIUS服务器.RADIUS依赖于UDP,每个数据包将包含带有身份验证数据的EAP消息.为简化起见,每个EAP(PEAP)消息都包含TLS数据包,因此客户端将首先发送包含服务器将处理的TLS客户端握手的EAP数据包,然后返回TLS服务器握手,依此类推以下包.
我已经能够通过TCP实现一个简单的TLS服务器,但我需要的是直接在SSL连接中写入TLS字节.
SSLConn_init_thread(); SSL_load_error_strings(); ERR_load_crypto_strings(); SSL_library_init(); SSL_CTX *ctx; ... ctx = SSL_CTX_new(SSLv23_server_method()); SSL_CTX_use_PrivateKey(...); SSL_CTX_use_certificate(...); ssl = SSL_new(ctx); // I want to read/write TLS packets directly with this object
我已经研究过OpenSSL 文档,但它没有很好的文档记录.在本指南中说,可以使用SSL_set_accept_state()
with SSL_read和SSL_write "手动"进行握手,但我不明白如何做到这一点.
任何有关此或关于在不依赖TCP的情况下处理OpenSSL连接的建议都将非常感激.