WordPress at a glance
function is not described

ParagonIE_Sodium_Compat::crypto_secretbox() public WP 1.0

Authenticated symmetric-key encryption.

Algorithm: XSalsa20-Poly1305

{} It's a method of the class: ParagonIE_Sodium_Compat{}

No Hooks.


String. Ciphertext with Poly1305 MAC


$result = ParagonIE_Sodium_Compat::crypto_secretbox( $plaintext, $nonce, $key );
$plaintext(string) (required)
The message you're encrypting
$nonce(string) (required)
A Number to be used Once; must be 24 bytes
$key(string) (required)
Symmetric encryption key

Code of ParagonIE_Sodium_Compat::crypto_secretbox() WP 5.7

public static function crypto_secretbox($plaintext, $nonce, $key)
    /* Type checks: */
    ParagonIE_Sodium_Core_Util::declareScalarType($plaintext, 'string', 1);
    ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2);
    ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 3);

    /* Input validation: */
    if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_SECRETBOX_NONCEBYTES) {
        throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_NONCEBYTES long.');
    if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_SECRETBOX_KEYBYTES) {
        throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_KEYBYTES long.');

    if (self::useNewSodiumAPI()) {
        return sodium_crypto_secretbox($plaintext, $nonce, $key);
    if (self::use_fallback('crypto_secretbox')) {
        return (string) call_user_func('\\Sodium\\crypto_secretbox', $plaintext, $nonce, $key);
    if (PHP_INT_SIZE === 4) {
        return ParagonIE_Sodium_Crypto32::secretbox($plaintext, $nonce, $key);
    return ParagonIE_Sodium_Crypto::secretbox($plaintext, $nonce, $key);