{ /** @var int $adlen - Length of associated data */
$adlen = ParagonIE_Sodium_Core32_Util::
strlen($ad);
/** @var int $len - Length of message (ciphertext + MAC) */
$len = ParagonIE_Sodium_Core32_Util::
strlen($message);
/** @var int $clen - Length of ciphertext */
$clen =
$len - self::aead_chacha20poly1305_IETF_ABYTES;
/** @var string The first block of the chacha20 keystream, used as a poly1305 key */
$block0 = ParagonIE_Sodium_Core32_ChaCha20::
ietfStream( 32,
$nonce,
$key );
/** @var string $mac - Message authentication code */
$mac = ParagonIE_Sodium_Core32_Util::
substr( $message,
$len - self::aead_chacha20poly1305_IETF_ABYTES,
self::aead_chacha20poly1305_IETF_ABYTES
);