sodium_crypto_box

FunctionParams and return types changed in PHP 8.0

Authenticated public-key encryption.

PHP 5
PHP 7.0-7.1
PHP 7.2
Added
PHP 7.3-7.4
PHP 8.0
Improved
PHP 8.1
PHP 8.2
PHP 8.3
PHP 8.4
PHP 8.5

sodium_crypto_box Function synopsis

sodium_crypto_box(
    string $message,
    string $nonce,
    string $key_pair
  ): string

Parameters

$message

Typestring

The message to be encrypted.

$nonce

Typestring

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes).

$key_pair

Typestring

See sodium_crypto_box_keypair_from_secretkey_and_publickey. This should include the sender's X25519 secret key and the recipient's X25519 public key.

Return value

Typestring

Returns the encrypted message (ciphertext plus authentication tag). The ciphertext will be 16 bytes longer than the plaintext, and a raw binary string. See sodium_bin2base64 for safe encoding for storage.

Changes to the sodium_crypto_box Function

PHP 8.0

  • Return type added: string
  • Parameter name of parameter #1 changed: $string to $message
  • Parameter type added for parameter #1 ($message): string
  • Parameter type added for parameter #2 ($nonce): string
  • Parameter name of parameter #3 changed: $key to $key_pair
  • Parameter type added for parameter #3 ($key_pair): string
  sodium_crypto_box(
-     $string,
+     string $message,
-     $nonce,
+     string $nonce,
-     $key
+     string $key_pair
-   )
+   ): string

PHP 7.2

  • Function added

sodium_crypto_box Function Availability

PHP VersionAvailability
PHP 8.5Future Release Yes
PHP 8.4Upcoming Release Yes
PHP 8.3Supported (Latest) Yes
PHP 8.2Supported Yes
PHP 8.1Security-Fixes Only Yes
PHP 8.0Unsupported Yes
PHP 7.4Unsupported Yes
PHP 7.3Unsupported Yes
PHP 7.2Unsupported Yes
PHP 7.1Unsupported No
PHP 7.0Unsupported No
PHP 5.6Unsupported No
PHP 5.5Unsupported No
PHP 5.4Unsupported No
PHP 5.3Unsupported No