![]() |
RMVL
2.5.0-dev
Robotic Manipulation and Vision Library
|
异步 TLS 安全流 更多...
#include <rmvl/io/ssl.hpp>
Public 成员函数 | |
| SSLStream (StreamSocket socket, SSLContext &ctx) | |
| 由异步 TCP 流式 Socket 创建异步 TLS 流 | |
| SSLStream (const SSLStream &)=delete | |
| SSLStream (SSLStream &&) noexcept=default | |
| SSLStream & | operator= (const SSLStream &)=delete |
| SSLStream & | operator= (SSLStream &&) noexcept=default |
| ~SSLStream ()=default | |
| std::string | lasterr () const |
| 获取最近一次错误信息 | |
| Task< bool > | connect (std::string_view server_name={}) |
| 执行客户端 TLS 握手 | |
| Task< bool > | accept () |
| 执行服务端 TLS 握手 | |
| Task< bool > | handshake (std::string_view server_name={}) |
| 根据上下文模式执行 TLS 握手 | |
| Task< std::string > | read (size_t max_size=65536) |
| 异步加密读取数据 | |
| Task< size_t > | read_to (char *buf, size_t size) |
| 异步加密读取数据到指定内存 | |
| Task< bool > | write (std::string_view data) |
| 异步加密写入数据 | |
| Public 成员函数 继承自 rm::SSLStream | |
| SSLStream (StreamSocket socket, SSLContext &ctx) | |
| 由已有 TCP 流式 Socket 创建 TLS 流 | |
| SSLStream (const SSLStream &)=delete | |
| SSLStream (SSLStream &&) noexcept=default | |
| SSLStream & | operator= (const SSLStream &)=delete |
| SSLStream & | operator= (SSLStream &&) noexcept=default |
| ~SSLStream () | |
| bool | invalid () const noexcept |
| TLS 流是否失效 | |
| const StreamSocket & | socket () const noexcept |
| 获取底层 Socket | |
| StreamSocket & | socket () noexcept |
| 获取底层 Socket | |
| std::string | lasterr () const |
| 获取最近一次错误信息 | |
| bool | connect (std::string_view server_name={}) |
| 执行客户端 TLS 握手 | |
| bool | accept () |
| 执行服务端 TLS 握手 | |
| bool | handshake (std::string_view server_name={}) |
| 根据上下文模式执行 TLS 握手 | |
| std::string | read (size_t max_size=65536) noexcept |
| 加密读取数据 | |
| size_t | read_to (char *buf, size_t size) noexcept |
| 加密读取数据到指定内存 | |
| bool | write (std::string_view data) noexcept |
| 加密写入数据 | |
| void | close () noexcept |
| 关闭 TLS 流与底层 Socket | |
额外继承的成员函数 | |
| Protected 成员函数 继承自 rm::SSLStream | |
| SSLContext & | context () noexcept |
| 获取 TLS 上下文 | |
| const SSLContext & | context () const noexcept |
| 获取 TLS 上下文 | |
异步 TLS 安全流
该类包装 rm::async::StreamSocket,并在 OpenSSL 返回 WANT_READ/WANT_WRITE 时挂起协程等待对应 I/O 事件,避免阻塞 IOContext 事件循环。
| rm::async::SSLStream::SSLStream | ( | StreamSocket | socket, |
| SSLContext & | ctx ) |
由异步 TCP 流式 Socket 创建异步 TLS 流
|
delete |
|
defaultnoexcept |
|
default |
| Task< bool > rm::async::SSLStream::accept | ( | ) |
执行服务端 TLS 握手
| Task< bool > rm::async::SSLStream::connect | ( | std::string_view | server_name = {} | ) |
执行客户端 TLS 握手
| [in] | server_name | 服务器名称,用于 SNI,可为空 |
| Task< bool > rm::async::SSLStream::handshake | ( | std::string_view | server_name = {} | ) |
根据上下文模式执行 TLS 握手
| [in] | server_name | 客户端模式下的 SNI,可为空 |
|
inlinenodiscard |
获取最近一次错误信息
| Task< std::string > rm::async::SSLStream::read | ( | size_t | max_size = 65536 | ) |
异步加密读取数据
| Task< size_t > rm::async::SSLStream::read_to | ( | char * | buf, |
| size_t | size ) |
异步加密读取数据到指定内存
| Task< bool > rm::async::SSLStream::write | ( | std::string_view | data | ) |
异步加密写入数据