msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified Han script) (Boost Beast Translation "
"(zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-06 20:35+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (Simplified Han script) <https://"
"insights.cppalliance.org/weblate/projects/boost-beast-documentation-zh_Hans/"
"doc-qbk-03-core-10-ssl-tls-shutdown-qbk/zh_Hans/>\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2026.5\n"

#. type: section title
#: 10
#, fuzzy
msgid "SSL/TLS Shutdown"
msgstr "SSL/TLS Shutdown"

#. type: paragraph
#: 13
#, fuzzy
msgid ""
"A secure SSL/TLS connection requires a proper shutdown process to securely "
"indicate the [@https://en.wikipedia.org/wiki/End-of-file ['EOF]] condition. "
"This process prevents a type of attack known as a [@https://en.wikipedia.org/"
"wiki/Transport_Layer_Security#Truncation_attack ['truncation attack]] in "
"which an attacker can close the underlying transport layer and control the "
"length of the last message in the SSL/TLS connection. A shutdown process "
"consists of exchanging `close_notify` message between two parties. In "
"__Asio__ these steps happen by calling `shutdown()` or `async_shutdown()` on "
"`ssl::stream` object."
msgstr ""
"A secure SSL/TLS connection requires a proper shutdown process to securely "
"indicate the [@https://en.wikipedia.org/wiki/End-of-file ['EOF]] condition. "
"This process prevents a type of attack known as a [@https://en.wikipedia.org/"
"wiki/Transport_Layer_Security#Truncation_attack ['truncation attack]] in "
"which an attacker can close the underlying transport layer and control the "
"length of the last message in the SSL/TLS connection. A shutdown process "
"consists of exchanging `close_notify` message between two parties. In "
"__Asio__ these steps happen by calling `shutdown()` or `async_shutdown()` on "
"`ssl::stream` object."

#. type: section title
#: 25
#, fuzzy
msgid "error::stream_truncated"
msgstr "error::stream_truncated"

#. type: paragraph
#: 27
#, fuzzy
msgid ""
"There are SSL/TLS implementations that don't perform a proper shutdown "
"process and simply close the underlying transport layer instead. As a "
"result, the EOF condition in these applications is not cryptographically "
"secure and should not be relied upon. However, there are scenarios where an "
"HTTPS client or server doesn't need EOF for determining the end of the last "
"message:"
msgstr ""
"There are SSL/TLS implementations that don't perform a proper shutdown "
"process and simply close the underlying transport layer instead. As a "
"result, the EOF condition in these applications is not cryptographically "
"secure and should not be relied upon. However, there are scenarios where an "
"HTTPS client or server doesn't need EOF for determining the end of the last "
"message:"

#. type: list
#: 33
#, fuzzy
msgid "* The HTTP message has a `Content-Length` header, and the body is fully"
msgstr "* The HTTP message has a `Content-Length` header, and the body is fully"

#. type: list
#: 36
#, fuzzy
msgid ""
"* The HTTP message uses chunked transfer encoding, and the final chunk is"
msgstr ""
"* The HTTP message uses chunked transfer encoding, and the final chunk is"

#. type: list
#: 39
#, fuzzy
msgid ""
"* The HTTP message doesn't contain a body, such as any response with a 1xx"
msgstr ""
"* The HTTP message doesn't contain a body, such as any response with a 1xx"

#. type: paragraph
#: 42
#, fuzzy
msgid ""
"In such scenarios, `http::read` or `http::async_read` operations succeed as "
"they don't need EOF to complete. However, the next operation on the stream "
"would fail with an [@boost:/doc/html/boost_asio/reference/"
"ssl__error__stream_errors.html `net::ssl::error::stream_truncated`] error."
msgstr ""
"In such scenarios, `http::read` or `http::async_read` operations succeed as "
"they don't need EOF to complete. However, the next operation on the stream "
"would fail with an [@boost:/doc/html/boost_asio/reference/"
"ssl__error__stream_errors.html `net::ssl::error::stream_truncated`] error."

#. type: paragraph
#: 48
#, fuzzy
msgid ""
"For example, let's assume we are using Beast for communicating with an HTTPS "
"server that doesn't perform a proper SSL/TLS shutdown:"
msgstr ""
"For example, let's assume we are using Beast for communicating with an HTTPS "
"server that doesn't perform a proper SSL/TLS shutdown:"

#. type: heading
#: 55
#, fuzzy
msgid "Non-Compliant Peers and Unknown Body Length"
msgstr "Non-Compliant Peers and Unknown Body Length"

#. type: paragraph
#: 57
#, fuzzy
msgid ""
"This is a rare case and indeed a security issue when HTTPS servers don't "
"perform a proper SSL/TLS shutdown procedure and send an HTTP response "
"message that relies on EOF to determine the end of the body. This is a "
"security concern because without an SSL/TLS shutdown procedure, the EOF is "
"not cryptographically secure, leaving the message body vulnerable to "
"truncation attacks."
msgstr ""
"This is a rare case and indeed a security issue when HTTPS servers don't "
"perform a proper SSL/TLS shutdown procedure and send an HTTP response "
"message that relies on EOF to determine the end of the body. This is a "
"security concern because without an SSL/TLS shutdown procedure, the EOF is "
"not cryptographically secure, leaving the message body vulnerable to "
"truncation attacks."

#. type: paragraph
#: 63
#, fuzzy
msgid ""
"The following is an example that can read an HTTP response from such a "
"server:"
msgstr ""
"The following is an example that can read an HTTP response from such a "
"server:"
