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 — Verifica se o texto cifrado inclui uma tag válida
$ciphertext,$additional_data,$nonce,$keyVerifica e descriptografa com ChaCha20-Poly1305 (variante IETF).
A variante IETF usa nonces de 96 bits e contadores internos de 32 bits, em vez de 64 bits para ambos.
ciphertextPrecisa estar no formato fornecido por sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (texto cifrado e tag, concatenados).
additional_dataDados adicionais e autenticados. São usados na verificação da tag de autenticação anexada ao texto cifrado, mas não são criptografados nem armazenados no texto cifrado.
nonceUm número que deve ser usado apenas uma vez por mensagem. 12 bytes long.
keyChave de criptografia (256-bit).
Retorna o texto simples em caso de sucesso, ou false em caso de falha.
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