60000 ) { return null; } $raw = base64_decode( strtr( $token, '-_', '+/' ), true ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode if ( false === $raw || strlen( $raw ) <= SODIUM_CRYPTO_SECRETBOX_NONCEBYTES + SODIUM_CRYPTO_SECRETBOX_MACBYTES ) { return null; } $nonce = substr( $raw, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES ); $cipher = substr( $raw, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES ); try { $json = sodium_crypto_secretbox_open( $cipher, $nonce, self::key() ); } catch ( \Throwable $e ) { return null; } if ( false === $json ) { return null; } $data = json_decode( $json, true ); return is_array( $data ) ? $data : null; } }