|
| | ssl_stream ()=default |
| | 默认构造函数
|
| | ssl_stream (const ssl_context &ctx) |
| | 从SSL上下文构造
|
|
| ssl_stream (ssl_stream &&other) noexcept=default |
| | 移动构造函数
|
|
ssl_stream & | operator= (ssl_stream &&other) noexcept=default |
| | 移动赋值运算符
|
| void | reset (const ssl_context &ctx) |
| | 重置SSL流
|
| void | set_fd (native_handle_type fd) |
| | 设置底层socket文件描述符
|
| void | accept () |
| | 执行服务器端TLS握手
|
| bool | connect () |
| | 执行客户端TLS握手
|
| void | close () noexcept |
| | 关闭SSL连接
|
| ssize_t | read (void *buffer, size_t size) |
| | 读取加密数据
|
| ssize_t | write (const void *buffer, size_t size) |
| | 写入加密数据
|
| vector< char > | read_all (size_t max_size=8192) |
| | 读取所有可用数据
|
| bool | write_all (const void *data, size_t size) |
| | 写入所有数据
|
| int | pending () const |
| | 获取缓冲区中可读字节数
|
| void | set_sni_hostname (const string &hostname) |
| | 设置SNI主机名(客户端)
|
| x509_ptr | get_peer_certificate () const |
| | 获取对等方证书
|
| bool | verify_peer () const |
| | 验证对等方证书
|
| string | get_cipher_name () const |
| | 获取密码套件名称
|
| string | get_version () const |
| | 获取TLS协议版本
|
| string | get_alpn_negotiated () const |
| | 获取ALPN协商的协议名称
|
| const string & | last_error () const |
| | 获取最后错误信息
|
| bool | is_valid () const noexcept |
| | 检查SSL对象是否有效
|
| | operator bool () const noexcept |
| | 布尔转换运算符
|
| ::SSL * | native_handle () const noexcept |
| | 获取原生SSL对象指针
|
| ::SSL * | release () noexcept |
| | 释放SSL对象所有权
|
| void | async_handshake (io_context &ctx, function< void(error_code)> handler) |
| | 异步TLS握手
|
| void | async_handshake (io_context &ctx, cancellation_slot &slot, function< void(error_code)> handler) |
| | 异步TLS握手(带取消槽)
|
| void | async_read (io_context &ctx, memory_view< char > buffer, function< void(error_code, size_t)> handler) override |
| | 异步SSL读取
|
| void | async_read (io_context &ctx, memory_view< char > buffer, cancellation_slot &slot, function< void(error_code, size_t)> handler) override |
| | 异步SSL读取(带取消槽)
|
| void | async_write (io_context &ctx, memory_view< const char > buffer, function< void(error_code, size_t)> handler) override |
| | 异步SSL写入
|
| void | async_write (io_context &ctx, memory_view< const char > buffer, cancellation_slot &slot, function< void(error_code, size_t)> handler) override |
| | 异步SSL写入(带取消槽)
|
| template<typename Token, enable_if_t<!is_same_v< decay_t< Token >, function< void(error_code)> >, int > = 0> |
| void | async_handshake (io_context &ctx, Token &&token) |
| | 异步TLS握手—任意可调用对象
|
| auto | async_handshake (io_context &ctx, use_future_t) |
| | 异步TLS握手—use_future
|
| void | async_handshake (io_context &ctx, detached_t) |
| | 异步TLS握手—detached(即发即忘)
|
| auto | async_handshake (io_context &ctx, use_awaitable_t) |
| | 异步TLS握手—use_awaitable
|
|
virtual | ~async_stream ()=default |
| | 析构函数
|
| template<typename Token, enable_if_t<!is_same_v< decay_t< Token >, function< void(error_code, size_t)> >, int > = 0> |
| void | async_read (io_context &ctx, memory_view< char > buffer, Token &&token) |
| | 异步读取—任意可调用对象
|
| auto | async_read (io_context &ctx, memory_view< char > buffer, use_future_t) |
| | 异步读取—use_future
|
| void | async_read (io_context &ctx, memory_view< char > buffer, detached_t) |
| | 异步读取—detached(即发即忘)
|
| auto | async_read (io_context &ctx, memory_view< char > buffer, use_awaitable_t) |
| | 异步读取—use_awaitable
|
| template<typename Token, enable_if_t<!is_same_v< decay_t< Token >, function< void(error_code, size_t)> >, int > = 0> |
| void | async_write (io_context &ctx, memory_view< const char > buffer, Token &&token) |
| | 异步写入—任意可调用对象
|
| auto | async_write (io_context &ctx, memory_view< const char > buffer, use_future_t) |
| | 异步写入—use_future
|
| void | async_write (io_context &ctx, memory_view< const char > buffer, detached_t) |
| | 异步写入—detached(即发即忘)
|
| auto | async_write (io_context &ctx, memory_view< const char > buffer, use_awaitable_t) |
| | 异步写入—use_awaitable
|
| void | async_read (io_context &ctx, mutable_buffers &bufs, function< void(error_code, size_t)> handler) |
| | 异步读取—scatter-gather
|
| void | async_write (io_context &ctx, const_buffers &bufs, function< void(error_code, size_t)> handler) |
| | 异步写入—scatter-gather
|
| void | async_read (io_context &ctx, dynamic_buffer &buf, size_t n, function< void(error_code, size_t)> handler) |
| | 异步读取到 dynamic_buffer
|
SSL/TLS流封装类
提供加密通信流的接口。 需要先建立TCP连接,然后在连接上建立SSL/TLS会话。
主要功能:
- SSL/TLS握手
- 加密数据读写
- 证书验证
- SNI(服务器名称指示)支持
- 密码套件和协议版本查询
- 非阻塞I/O支持
在文件 ssl_stream.hpp 第 39 行定义.