(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_secretstream_xchacha20poly1305_push — Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API
&$state
,$message
,$additional_data
= "",$tag
= SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API.
state
Смотрите sodium_crypto_secretstream_xchacha20poly1305_init_pull() и sodium_crypto_secretstream_xchacha20poly1305_init_push()
message
additional_data
tag
Необязательно. Может использоваться для подтверждения поведения дешифрования (т.е. повторного ввода ключей или указания последнего фрагмента в потоке).
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
: "забывает" ключ, использованный для шифрования этого и предыдущих сообщений и получает новый секретный ключ. Возвращает зашифрованный текст.