Skip to content

PHP 8.6 | NewFunctions/Constants: detect new sodium functions and related constants - #2099

Merged
wimg merged 2 commits into
developfrom
php-8.6/newfunctionsconstants-sodium
Sep 21, 2026
Merged

wimg merged 2 commits into
developfrom
php-8.6/newfunctionsconstants-sodium

Conversation

@jrfnl

@jrfnl jrfnl commented Sep 17, 2026

Copy link
Copy Markdown
Member

PHP 8.6 | NewFunctions/Constants: detect new sodium functions and related constants [1]

  • Sodium:
    . sodium_crypto_ipcrypt_keygen()
    . sodium_crypto_ipcrypt_encrypt()
    . sodium_crypto_ipcrypt_decrypt()
    . sodium_crypto_ipcrypt_nd_keygen()
    . sodium_crypto_ipcrypt_nd_encrypt()
    . sodium_crypto_ipcrypt_nd_decrypt()
    . sodium_crypto_ipcrypt_ndx_keygen()
    . sodium_crypto_ipcrypt_ndx_encrypt()
    . sodium_crypto_ipcrypt_ndx_decrypt()
    . sodium_crypto_ipcrypt_pfx_keygen()
    . sodium_crypto_ipcrypt_pfx_encrypt()
    . sodium_crypto_ipcrypt_pfx_decrypt()
    . sodium_bin2ip()
    . sodium_ip2bin()
    . sodium_crypto_xof_shake128()
    . sodium_crypto_xof_shake128_init()
    . sodium_crypto_xof_shake128_update()
    . sodium_crypto_xof_shake128_squeeze()
    . sodium_crypto_xof_shake256()
    . sodium_crypto_xof_shake256_init()
    . sodium_crypto_xof_shake256_update()
    . sodium_crypto_xof_shake256_squeeze()
    . sodium_crypto_xof_turboshake128()
    . sodium_crypto_xof_turboshake128_init()
    . sodium_crypto_xof_turboshake128_update()
    . sodium_crypto_xof_turboshake128_squeeze()
    . sodium_crypto_xof_turboshake256()
    . sodium_crypto_xof_turboshake256_init()
    . sodium_crypto_xof_turboshake256_update()
    . sodium_crypto_xof_turboshake256_squeeze()
  • Sodium:
    . SODIUM_CRYPTO_IPCRYPT_BYTES.
    . SODIUM_CRYPTO_IPCRYPT_KEYBYTES.
    . SODIUM_CRYPTO_IPCRYPT_ND_KEYBYTES.
    . SODIUM_CRYPTO_IPCRYPT_ND_TWEAKBYTES.
    . SODIUM_CRYPTO_IPCRYPT_ND_INPUTBYTES.
    . SODIUM_CRYPTO_IPCRYPT_ND_OUTPUTBYTES.
    . SODIUM_CRYPTO_IPCRYPT_NDX_KEYBYTES.
    . SODIUM_CRYPTO_IPCRYPT_NDX_TWEAKBYTES.
    . SODIUM_CRYPTO_IPCRYPT_NDX_INPUTBYTES.
    . SODIUM_CRYPTO_IPCRYPT_NDX_OUTPUTBYTES.
    . SODIUM_CRYPTO_IPCRYPT_PFX_KEYBYTES.
    . SODIUM_CRYPTO_IPCRYPT_PFX_BYTES.
    . SODIUM_CRYPTO_XOF_SHAKE128_BLOCKBYTES.
    . SODIUM_CRYPTO_XOF_SHAKE128_STATEBYTES.
    . SODIUM_CRYPTO_XOF_SHAKE256_BLOCKBYTES.
    . SODIUM_CRYPTO_XOF_SHAKE256_STATEBYTES.
    . SODIUM_CRYPTO_XOF_TURBOSHAKE128_BLOCKBYTES.
    . SODIUM_CRYPTO_XOF_TURBOSHAKE128_STATEBYTES.
    . SODIUM_CRYPTO_XOF_TURBOSHAKE256_BLOCKBYTES.
    . SODIUM_CRYPTO_XOF_TURBOSHAKE256_STATEBYTES.

This commit accounts for detecting use of the new functions and the new constants.

Includes test.

Refs:

Related to #2052

PHP 8.6 | NewFunctions/Constants: detect new sodium functions and related constants [2]

  • Sodium:
    . sodium_crypto_kem_keypair(), sodium_crypto_kem_seed_keypair(),
    sodium_crypto_kem_secretkey(), sodium_crypto_kem_publickey(),
    sodium_crypto_kem_enc() and sodium_crypto_kem_dec() expose the X-Wing
    KEM (hybrid ML-KEM768+X25519, libsodium's recommended KEM).
    Available when PHP is built against libsodium >= 1.0.22.
    . sodium_crypto_kem_mlkem768_keypair(),
    sodium_crypto_kem_mlkem768_seed_keypair(),
    sodium_crypto_kem_mlkem768_secretkey(),
    sodium_crypto_kem_mlkem768_publickey(),
    sodium_crypto_kem_mlkem768_enc() and sodium_crypto_kem_mlkem768_dec()
    expose the ML-KEM768 (FIPS 203) KEM.
    Available when PHP is built against libsodium >= 1.0.22.
  • Sodium:
    . SODIUM_CRYPTO_KEM_PUBLICKEYBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_SECRETKEYBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_CIPHERTEXTBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_SHAREDSECRETBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_SEEDBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_KEYPAIRBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_MLKEM768_PUBLICKEYBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_MLKEM768_SECRETKEYBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_MLKEM768_CIPHERTEXTBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_MLKEM768_SHAREDSECRETBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_MLKEM768_SEEDBYTES (libsodium >= 1.0.22).
    . SODIUM_CRYPTO_KEM_MLKEM768_KEYPAIRBYTES (libsodium >= 1.0.22).

This commit accounts for detecting use of the new functions and the new constants.

Includes test.

Refs:

Related to #2052

…ated constants [1]

> - Sodium:
>   . sodium_crypto_ipcrypt_keygen()
>   . sodium_crypto_ipcrypt_encrypt()
>   . sodium_crypto_ipcrypt_decrypt()
>   . sodium_crypto_ipcrypt_nd_keygen()
>   . sodium_crypto_ipcrypt_nd_encrypt()
>   . sodium_crypto_ipcrypt_nd_decrypt()
>   . sodium_crypto_ipcrypt_ndx_keygen()
>   . sodium_crypto_ipcrypt_ndx_encrypt()
>   . sodium_crypto_ipcrypt_ndx_decrypt()
>   . sodium_crypto_ipcrypt_pfx_keygen()
>   . sodium_crypto_ipcrypt_pfx_encrypt()
>   . sodium_crypto_ipcrypt_pfx_decrypt()
>   . sodium_bin2ip()
>   . sodium_ip2bin()
>   . sodium_crypto_xof_shake128()
>   . sodium_crypto_xof_shake128_init()
>   . sodium_crypto_xof_shake128_update()
>   . sodium_crypto_xof_shake128_squeeze()
>   . sodium_crypto_xof_shake256()
>   . sodium_crypto_xof_shake256_init()
>   . sodium_crypto_xof_shake256_update()
>   . sodium_crypto_xof_shake256_squeeze()
>   . sodium_crypto_xof_turboshake128()
>   . sodium_crypto_xof_turboshake128_init()
>   . sodium_crypto_xof_turboshake128_update()
>   . sodium_crypto_xof_turboshake128_squeeze()
>   . sodium_crypto_xof_turboshake256()
>   . sodium_crypto_xof_turboshake256_init()
>   . sodium_crypto_xof_turboshake256_update()
>   . sodium_crypto_xof_turboshake256_squeeze()

> - Sodium:
>   . SODIUM_CRYPTO_IPCRYPT_BYTES.
>   . SODIUM_CRYPTO_IPCRYPT_KEYBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_ND_KEYBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_ND_TWEAKBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_ND_INPUTBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_ND_OUTPUTBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_NDX_KEYBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_NDX_TWEAKBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_NDX_INPUTBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_NDX_OUTPUTBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_PFX_KEYBYTES.
>   . SODIUM_CRYPTO_IPCRYPT_PFX_BYTES.
>   . SODIUM_CRYPTO_XOF_SHAKE128_BLOCKBYTES.
>   . SODIUM_CRYPTO_XOF_SHAKE128_STATEBYTES.
>   . SODIUM_CRYPTO_XOF_SHAKE256_BLOCKBYTES.
>   . SODIUM_CRYPTO_XOF_SHAKE256_STATEBYTES.
>   . SODIUM_CRYPTO_XOF_TURBOSHAKE128_BLOCKBYTES.
>   . SODIUM_CRYPTO_XOF_TURBOSHAKE128_STATEBYTES.
>   . SODIUM_CRYPTO_XOF_TURBOSHAKE256_BLOCKBYTES.
>   . SODIUM_CRYPTO_XOF_TURBOSHAKE256_STATEBYTES.

This commit accounts for detecting use of the new functions and the new constants.

Includes test.

Refs:
* https://github.com/php/php-src/blob/e783539fe5824067bbcc8b9e09f04735b819aa96/UPGRADING#L778-L807
* https://github.com/php/php-src/blob/ac53f14223b4cda3199675878113f82de4d1717a/UPGRADING#L924-L944
* php/php-src 20960
* php/php-src@8a907a9

Related to 2052
…ated constants [2]

> - Sodium:
>   . sodium_crypto_kem_keypair(), sodium_crypto_kem_seed_keypair(),
>     sodium_crypto_kem_secretkey(), sodium_crypto_kem_publickey(),
>     sodium_crypto_kem_enc() and sodium_crypto_kem_dec() expose the X-Wing
>     KEM (hybrid ML-KEM768+X25519, libsodium's recommended KEM).
>     Available when PHP is built against libsodium >= 1.0.22.
>   . sodium_crypto_kem_mlkem768_keypair(),
>     sodium_crypto_kem_mlkem768_seed_keypair(),
>     sodium_crypto_kem_mlkem768_secretkey(),
>     sodium_crypto_kem_mlkem768_publickey(),
>     sodium_crypto_kem_mlkem768_enc() and sodium_crypto_kem_mlkem768_dec()
>     expose the ML-KEM768 (FIPS 203) KEM.
>     Available when PHP is built against libsodium >= 1.0.22.

> - Sodium:
>   . SODIUM_CRYPTO_KEM_PUBLICKEYBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_SECRETKEYBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_CIPHERTEXTBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_SHAREDSECRETBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_SEEDBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_KEYPAIRBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_MLKEM768_PUBLICKEYBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_MLKEM768_SECRETKEYBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_MLKEM768_CIPHERTEXTBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_MLKEM768_SHAREDSECRETBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_MLKEM768_SEEDBYTES (libsodium >= 1.0.22).
>   . SODIUM_CRYPTO_KEM_MLKEM768_KEYPAIRBYTES (libsodium >= 1.0.22).

This commit accounts for detecting use of the new functions and the new constants.

Includes test.

Refs:
* https://github.com/php/php-src/blob/ac53f14223b4cda3199675878113f82de4d1717a/UPGRADING#L777-L789
* https://github.com/php/php-src/blob/ac53f14223b4cda3199675878113f82de4d1717a/UPGRADING#L945-L956
* php/php-src 23420
* php/php-src@d1116a1

Related to 2052
@jrfnl jrfnl added this to the 10.0.0-alpha3 milestone Sep 17, 2026
@wimg
wimg merged commit 4b1ac83 into develop Sep 21, 2026
50 checks passed
@wimg
wimg deleted the php-8.6/newfunctionsconstants-sodium branch September 21, 2026 23:21
@github-actions github-actions Bot removed PR: quick merge PR only contains relatively simple changes PR: ready for review labels Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants