array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.sodium-crypto-secretstream-xchacha20poly1305-pull.php', 1 => 'sodium_crypto_secretstream_xchacha20poly1305_pull', ), 'up' => array ( 0 => 'ref.sodium.php', 1 => 'Функции Sodium', ), 'prev' => array ( 0 => 'function.sodium-crypto-secretstream-xchacha20poly1305-keygen.php', 1 => 'sodium_crypto_secretstream_xchacha20poly1305_keygen', ), 'next' => array ( 0 => 'function.sodium-crypto-secretstream-xchacha20poly1305-push.php', 1 => 'sodium_crypto_secretstream_xchacha20poly1305_push', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/sodium/functions/sodium-crypto-secretstream-xchacha20poly1305-pull.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_secretstream_xchacha20poly1305_pull — Расшифровывает часть данных из зашифрованного потока
&$state
, string $ciphertext
, string $additional_data
= ""): array|falseРасшифровывает часть данных из зашифрованного потока.
state
Смотрите sodium_crypto_secretstream_xchacha20poly1305_init_pull() и sodium_crypto_secretstream_xchacha20poly1305_init_push()
ciphertext
Фрагмент зашифрованного текста, который нужно расшифровать.
additional_data
Необязательные дополнительные данные для включения в тег аутентификации.
Массив с двумя значениями:
Строка (string); Расшифрованный фрагмент
Целое число (int); Необязательный тег (если предоставляется во время отправки). Возможные значения:
SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
:
самый распространённый тег, который не добавляет никакой информации о характере сообщения.
SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL
:
указывает, что сообщение отмечает конец потока, и стирает секретный ключ, использованный для шифрования предыдущей последовательности.
SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH
:
указывает, что сообщение отмечает конец набора сообщений, но не конец потока.
Например, огромная строка JSON, отправленная в виде нескольких фрагментов, может использовать этот тег,
чтобы указать приложению, что строка завершена и что её можно декодировать.
Но сам поток не закрывается и могут последовать дополнительные данные.
SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY
:
"забывает" ключ, использованный для шифрования этого и предыдущих сообщений и получает новый секретный ключ.