sodium_crypto_secretstream_xchacha20poly1305_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_pull — Розшифровує частину даних із зашифрованого потоку

Опис

sodium_crypto_secretstream_xchacha20poly1305_pull(string &$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: "забуває" ключ, використаний для шифрування цього та попередніх повідомлень і отримує новий секретний ключ.