RMVL  2.5.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 流
 SSLStream (const SSLStream &)=delete
 SSLStream (SSLStream &&) noexcept=default
SSLStreamoperator= (const SSLStream &)=delete
SSLStreamoperator= (SSLStream &&) noexcept=default
 ~SSLStream ()
bool invalid () const noexcept
 TLS 流是否失效
const StreamSocketsocket () const noexcept
 获取底层 Socket
StreamSocketsocket () 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 成员函数

SSLContextcontext () noexcept
 获取 TLS 上下文
const SSLContextcontext () const noexcept
 获取 TLS 上下文

详细描述

TLS 安全流

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

构造及析构函数说明

◆ SSLStream() [1/3]

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

由已有 TCP 流式 Socket 创建 TLS 流

函数调用图:

◆ SSLStream() [2/3]

rm::SSLStream::SSLStream ( const SSLStream & )
delete
函数调用图:

◆ SSLStream() [3/3]

rm::SSLStream::SSLStream ( SSLStream && )
defaultnoexcept
函数调用图:

◆ ~SSLStream()

rm::SSLStream::~SSLStream ( )
函数调用图:

成员函数说明

◆ 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

获取最近一次错误信息

◆ operator=() [1/2]

SSLStream & rm::SSLStream::operator= ( const SSLStream & )
delete
函数调用图:

◆ operator=() [2/2]

SSLStream & rm::SSLStream::operator= ( SSLStream && )
defaultnoexcept
函数调用图:

◆ 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

加密写入数据

函数调用图: