sodium_crypto_aead_chacha20poly1305_ietf_decrypt function mentions in its documentation that it'll always return a string. But when passed a malformed input as argument, it returns a boolean(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверяет, содержит ли зашифрованный текст допустимый тег
$ciphertext,$additional_data,$nonce,$keyФункция проверяет, а затем расшифровывает алгоритмом ChaCha20-Poly1305 (вариант совета IETF).
Вариант совета IETF использует 96-битные одноразовые номера и 32-битные внутренние счётчики вместо 64-битных и для того и для другого.
ciphertextПараметр должен быть в формате, который предоставила функция sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (зашифрованный текст и тег, объединённые).
additional_dataДополнительные проверенные данные. Функция использует значение при проверке тега подлинности, который добавили к зашифрованному тексту, но не шифрует и не сохраняет в зашифрованном тексте.
nonceНомер, который необходимо использовать только один раз для каждого сообщения. Длина 12 байтов.
keyКлюч шифрования (256 битов).
В случае успешного выполнения функция возвращает текст или false, если возникла ошибка.
sodium_crypto_aead_chacha20poly1305_ietf_decrypt function mentions in its documentation that it'll always return a string. But when passed a malformed input as argument, it returns a boolean