forked from boostorg/beast
This resolves a medium vulnerability described in the Beast Hybrid Assessment Report by Bishop Fox, where masks generated for use with outgoing WebSocket client frames use an insufficient source of entropy and a non-cryptographically secure pseudo-random number generator. By default, all newly constructed WebSocket streams will use a uniquely seeded secure PRNG (ChaCha20 in counter mode). As this may result in increased CPU resource consumption, the function websocket::stream::secure_prng() may be used to select a faster but less secure PRNG, for the case where the caller knows that the secure generator is not necessary. On some systems, std::random_device may produce insufficient entropy to securely seed the PRNG. As this condition cannot be detected by Beast, callers may use the function websocket::seed_prng() called once at startup to provide at least 256 bits of entropy which will be used to uniquely seed all subsequent PRNGs.
350 lines
22 KiB
XML
350 lines
22 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../../tools/boostbook/dtd/boostbook.dtd">
|
|
|
|
<!--
|
|
Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
|
|
|
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
Official repository: https://github.com/boostorg/beast
|
|
|
|
-->
|
|
|
|
<informaltable frame="all">
|
|
<tgroup cols="4">
|
|
<colspec colname="a"/>
|
|
<colspec colname="b"/>
|
|
<colspec colname="c"/>
|
|
<colspec colname="d"/>
|
|
<thead>
|
|
<row>
|
|
<entry valign="center" namest="a" nameend="c">
|
|
<bridgehead renderas="sect2">HTTP</bridgehead>
|
|
</entry>
|
|
<entry valign="center" namest="d" nameend="d">
|
|
<bridgehead renderas="sect2">WebSocket</bridgehead>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Classes</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__http__basic_chunk_extensions">basic_chunk_extensions</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__basic_dynamic_body">basic_dynamic_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__basic_fields">basic_fields</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__basic_file_body">basic_file_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__basic_parser">basic_parser</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__basic_string_body">basic_string_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__buffer_body">buffer_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__chunk_body">chunk_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__chunk_crlf">chunk_crlf</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__chunk_extensions">chunk_extensions</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__chunk_header">chunk_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__chunk_last">chunk_last</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__dynamic_body">dynamic_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__empty_body">empty_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__fields">fields</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__file_body">file_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__header">header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__message">message</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__parser">parser</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__request">request</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__request_header">request_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__request_parser">request_parser</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__request_serializer">request_serializer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__response">response</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__response_header">response_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__response_parser">response_parser</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__response_serializer">response_serializer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__serializer">serializer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__span_body">span_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__string_body">string_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__vector_body">vector_body</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Functions</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__http__async_read">async_read</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__async_read_header">async_read_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__async_read_some">async_read_some</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__async_write">async_write</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__async_write_header">async_write_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__async_write_some">async_write_some</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__int_to_status">int_to_status</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__make_chunk">make_chunk</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__make_chunk_last">make_chunk_last</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__obsolete_reason">obsolete_reason</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__operator_lt__lt_">operator<<</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__read">read</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__read_header">read_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__read_some">read_some</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__string_to_field">string_to_field</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__string_to_verb">string_to_verb</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__swap">swap</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__to_string">to_string</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__to_status_class">to_status_class</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__write">write</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__write_header">write_header</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__write_some">write_some</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">rfc7230</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__http__ext_list">ext_list</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__opt_token_list">opt_token_list</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__param_list">param_list</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__token_list">token_list</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Constants</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__http__error">error</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__field">field</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__status">status</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__status_class">status_class</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__verb">verb</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Type Traits</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__http__is_body">is_body</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__is_body_reader">is_body_reader</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__is_body_writer">is_body_writer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__is_fields">is_fields</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__is_mutable_body_writer">is_mutable_body_writer</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Concepts</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.concepts.Body">Body</link></member>
|
|
<member><link linkend="beast.concepts.BodyReader">BodyReader</link></member>
|
|
<member><link linkend="beast.concepts.BodyWriter">BodyWriter</link></member>
|
|
<member><link linkend="beast.concepts.Fields">Fields</link></member>
|
|
<member><link linkend="beast.concepts.FieldsWriter">FieldsWriter</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Classes</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__websocket__close_reason">close_reason</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__ping_data">ping_data</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__stream">stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__reason_string">reason_string</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Functions</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__websocket__async_teardown">async_teardown</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__is_upgrade">is_upgrade</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__seed_prng">seed_prng</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__teardown">teardown</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Options</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__websocket__permessage_deflate">permessage_deflate</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Constants</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__websocket__close_code">close_code</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__condition">condition</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__error">error</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__frame_type">frame_type</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__websocket__role_type">role_type</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
<tgroup cols="4">
|
|
<colspec colname="a"/>
|
|
<colspec colname="b"/>
|
|
<colspec colname="c"/>
|
|
<colspec colname="d"/>
|
|
<colspec colname="e"/>
|
|
<thead>
|
|
<row>
|
|
<entry valign="center" namest="a" nameend="e">
|
|
<bridgehead renderas="sect2">Core</bridgehead>
|
|
</entry>
|
|
<entry valign="center" namest="f" nameend="f">
|
|
<bridgehead renderas="sect2">ZLib</bridgehead>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Classes</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__basic_flat_buffer">basic_flat_buffer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__basic_multi_buffer">basic_multi_buffer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffered_read_stream">buffered_read_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_adapter">buffers_adapter</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_cat_view">buffers_cat_view</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_prefix_view">buffers_prefix_view</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_suffix">buffers_suffix</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__file">file</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__file_mode">file_mode</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__file_posix">file_posix</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__file_stdio">file_stdio</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__file_win32">file_win32</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3"> </bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__flat_buffer">flat_buffer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__flat_static_buffer">flat_static_buffer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__flat_static_buffer_base">flat_static_buffer_base</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__handler_ptr">handler_ptr</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__iequal">iequal</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__iless">iless</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__multi_buffer">multi_buffer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__span">span</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__static_buffer">static_buffer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__static_buffer_base">static_buffer_base</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__static_string">static_string</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__string_param">string_param</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__string_view">string_view</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Functions</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__bind_handler">bind_handler</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers">buffers</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_cat">buffers_cat</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_front">buffers_front</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_prefix">buffers_prefix</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__buffers_to_string">buffers_to_string</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__generic_category">generic_category</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__iequals">iequals</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__ostream">ostream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__read_size">read_size</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__read_size_or_throw">read_size_or_throw</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__to_static_string">to_static_string</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Constants</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__file_mode">file_mode</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Type Traits</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__get_lowest_layer">get_lowest_layer</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__has_get_executor">has_get_executor</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_async_read_stream">is_async_read_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_async_write_stream">is_async_write_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_async_stream">is_async_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_completion_handler">is_completion_handler</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_file">is_file</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_sync_read_stream">is_sync_read_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_sync_stream">is_sync_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__is_sync_write_stream">is_sync_write_stream</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Aliases</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__errc">errc</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__error_category">error_category</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__error_code">error_code</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__error_condition">error_condition</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__system_category">system_category</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__system_error">system_error</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Concepts</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.concepts.streams.AsyncStream">AsyncStream</link></member>
|
|
<member><link linkend="beast.concepts.BufferSequence">BufferSequence</link></member>
|
|
<member><link linkend="beast.concepts.DynamicBuffer">DynamicBuffer</link></member>
|
|
<member><link linkend="beast.concepts.File">File</link></member>
|
|
<member><link linkend="beast.concepts.streams.Stream">Stream</link></member>
|
|
<member><link linkend="beast.concepts.streams.SyncStream">SyncStream</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Classes</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__zlib__deflate_stream">deflate_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__zlib__inflate_stream">inflate_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__zlib__z_params">z_params</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Functions</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__zlib__deflate_upper_bound">deflate_upper_bound</link></member>
|
|
</simplelist>
|
|
<bridgehead renderas="sect3">Constants</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__zlib__error">error</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__zlib__Flush">Flush</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__zlib__Strategy">Strategy</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
<tgroup cols="2">
|
|
<colspec colname="a"/>
|
|
<colspec colname="b"/>
|
|
<colspec colname="c"/>
|
|
<thead>
|
|
<row>
|
|
<entry valign="center" namest="a" nameend="c">
|
|
<bridgehead renderas="sect2">Experimental</bridgehead>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Classes</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__flat_stream">flat_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__ssl_stream">ssl_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__http__icy_stream">http::icy_stream</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__test__fail_count">test::fail_count</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__test__stream">test::stream</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Functions</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__test__connect">test::connect</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
<entry valign="top">
|
|
<bridgehead renderas="sect3">Constants</bridgehead>
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__test__error">test::error</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
<!--
|
|
<tgroup cols="1">
|
|
<colspec colname="a"/>
|
|
<thead>
|
|
<row>
|
|
<entry valign="center" namest="a" nameend="a">
|
|
<bridgehead renderas="sect2">Diagnostic</bridgehead>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry valign="top">
|
|
<simplelist type="vert" columns="1">
|
|
<member><link linkend="beast.ref.boost__beast__doc_debug">doc_debug</link></member>
|
|
<member><link linkend="beast.ref.boost__beast__nested__nested_doc_debug">nested_doc_debug</link></member>
|
|
</simplelist>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
-->
|
|
</informaltable>
|