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

TLS 上下文 更多...

#include <rmvl/io/ssl.hpp>

rm::SSLContext 的协作图:

Public 成员函数

 SSLContext (SSLMode mode=SSLMode::Client)
 创建 TLS 上下文
 SSLContext (const SSLContext &)=delete
 SSLContext (SSLContext &&) noexcept=default
SSLContextoperator= (const SSLContext &)=delete
SSLContextoperator= (SSLContext &&) noexcept=default
 ~SSLContext ()=default
bool valid () const noexcept
 上下文是否有效
SSLMode mode () const noexcept
 获取 TLS 工作模式
std::string lasterr () const
 获取最近一次错误信息
bool load_cert (std::string_view cert_file, std::string_view key_file)
 加载证书与私钥文件
bool load_ca (std::string_view ca_file, std::string_view ca_path={})
 加载用于验证对端证书的受信任 CA
void set_verify_mode (SSLVerifyMode mode)
 设置对端证书验证方式

静态 Public 成员函数

static bool available () noexcept
 当前构建是否启用了 OpenSSL
static SSLContext client ()
 创建客户端 TLS 上下文
static SSLContext server ()
 创建服务端 TLS 上下文

详细描述

TLS 上下文

保存证书、私钥、CA 等可被多个连接复用的 TLS 配置。该类不拥有 Socket,仅负责创建 SSLStream 所需的 OpenSSL 上下文。

构造及析构函数说明

◆ SSLContext() [1/3]

rm::SSLContext::SSLContext ( SSLMode mode = SSLMode::Client)
explicit

创建 TLS 上下文

函数调用图:

◆ SSLContext() [2/3]

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

◆ SSLContext() [3/3]

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

◆ ~SSLContext()

rm::SSLContext::~SSLContext ( )
default
函数调用图:

成员函数说明

◆ available()

bool rm::SSLContext::available ( )
staticnoexcept

当前构建是否启用了 OpenSSL

函数调用图:

◆ client()

SSLContext rm::SSLContext::client ( )
inlinestatic

创建客户端 TLS 上下文

函数调用图:

◆ lasterr()

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

获取最近一次错误信息

◆ load_ca()

bool rm::SSLContext::load_ca ( std::string_view ca_file,
std::string_view ca_path = {} )

加载用于验证对端证书的受信任 CA

注解
仅在通过 set_verify_mode() 启用 SSLVerifyMode::Peer 时参与对端证书认证
参数
[in]ca_fileCA 文件路径,可为空
[in]ca_pathCA 目录路径,可为空
返回
是否加载成功

◆ load_cert()

bool rm::SSLContext::load_cert ( std::string_view cert_file,
std::string_view key_file )

加载证书与私钥文件

参数
[in]cert_file证书文件路径,PEM 格式
[in]key_file私钥文件路径,PEM 格式
返回
是否加载成功

◆ mode()

SSLMode rm::SSLContext::mode ( ) const
inlinenodiscardnoexcept

获取 TLS 工作模式

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ server()

SSLContext rm::SSLContext::server ( )
inlinestatic

创建服务端 TLS 上下文

函数调用图:

◆ set_verify_mode()

void rm::SSLContext::set_verify_mode ( SSLVerifyMode mode)

设置对端证书验证方式

函数调用图:

◆ valid()

bool rm::SSLContext::valid ( ) const
inlinenodiscardnoexcept

上下文是否有效