RMVL  2.6.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::SSLStream类 参考

TLS 安全流 更多...

#include <rmvl/io/ssl.hpp>

类 rm::SSLStream 继承关系图:
rm::SSLStream 的协作图:

Public 成员函数

 SSLStream (StreamSocket socket, SSLContext &ctx)
 由已有 TCP 流式 Socket 创建 TLS 流
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 成员函数

SSLContext & context () noexcept
 获取 TLS 上下文
const SSLContext & context () const noexcept
 获取 TLS 上下文

详细描述

TLS 安全流

SSLStream 包装一个已经建立 TCP 连接的 StreamSocket,在其上执行 TLS 握手、 加密读取与加密写入。未启用 OpenSSL 时,该类仍可被包含,但实例不可用。

构造及析构函数说明

◆ SSLStream()

rm::SSLStream::SSLStream ( StreamSocket socket,
SSLContext & ctx )

由已有 TCP 流式 Socket 创建 TLS 流

函数调用图:

成员函数说明

◆ accept()

bool rm::SSLStream::accept ( )

执行服务端 TLS 握手

◆ close()

void rm::SSLStream::close ( )
noexcept

关闭 TLS 流与底层 Socket

函数调用图:

◆ connect()

bool rm::SSLStream::connect ( std::string_view server_name = {})

执行客户端 TLS 握手

参数
[in]server_name服务器名称,用于 SNI,可为空
返回
握手是否成功

◆ context() [1/2]

const SSLContext & rm::SSLStream::context ( ) const
inlinenodiscardprotectednoexcept

获取 TLS 上下文

◆ context() [2/2]

SSLContext & rm::SSLStream::context ( )
inlinenodiscardprotectednoexcept

获取 TLS 上下文

◆ handshake()

bool rm::SSLStream::handshake ( std::string_view server_name = {})

根据上下文模式执行 TLS 握手

参数
[in]server_name客户端模式下的 SNI,可为空
返回
握手是否成功

◆ invalid()

bool rm::SSLStream::invalid ( ) const
inlinenodiscardnoexcept

TLS 流是否失效

函数调用图:

◆ lasterr()

std::string rm::SSLStream::lasterr ( ) const
inlinenodiscard

获取最近一次错误信息

◆ read()

std::string rm::SSLStream::read ( size_t max_size = 65536)
noexcept

加密读取数据

◆ read_to()

size_t rm::SSLStream::read_to ( char * buf,
size_t size )
noexcept

加密读取数据到指定内存

函数调用图:

◆ socket() [1/2]

const StreamSocket & rm::SSLStream::socket ( ) const
inlinenodiscardnoexcept

获取底层 Socket

◆ socket() [2/2]

StreamSocket & rm::SSLStream::socket ( )
inlinenodiscardnoexcept

获取底层 Socket

◆ write()

bool rm::SSLStream::write ( std::string_view data)
noexcept

加密写入数据

函数调用图: