【发布时间】:2009-12-03 18:44:47
【问题描述】:
我有一个简单的 C 语言 stream_t 类型,带有基本的读/写操作,并支持使用函数指针的多个底层实现。因此,流可以由文件、字符缓冲区等支持。
一种流类型是标准 POSIX 套接字,我想编写一个包装流,它将向现有流添加 SSL 支持,类似于 .NET 的SslStream。所以我可以这样写:
stream_t *socket = something(); // 包装现有流并作为客户端执行握手 stream_t *ssl_stream = ssl_stream_create(socket); ssl_stream_authenticate_as_user(ssl_stream); // 现在所有读/写都被加密并传递给包装的流在使用 OpenSSL 的 BIO_new_connect(...) 等之前,我已经编写了一些 SSL 套接字代码,但这是一个比我需要的更高级别的 API。 OpenSSL 是否公开了我手动执行握手和加密所需的功能?或者还有其他我可以使用的库吗?
【问题讨论】: