ext/sodium: document the 8.4 aarch64 support for AES-256-GCM - #5780
Merged
lacatoire merged 1 commit intoAug 25, 2026
Merged
Conversation
lacatoire
force-pushed
the
sync-src/sodium-aes256gcm-aarch64-84
branch
3 times, most recently
from
August 25, 2026 19:37
bba7160 to
eb25bf1
Compare
Before PHP 8.4 the HAVE_AESGCM guard in ext/sodium/libsodium.c covered x86 and x86_64 only. PHP 8.4 extends it to __aarch64__ and _M_ARM64 (php-src #12867, commit 1816403d84). On aarch64 this means sodium_crypto_aead_aes256gcm_is_available() may now return true, and the encrypt, decrypt and keygen functions and the SODIUM_CRYPTO_AEAD_AES256GCM_* constants are now defined at all. The changelog table shared by the encrypt, decrypt and keygen pages is declared once as sodium.changelog.aes256gcm-aarch64 in language-snippets.ent. The previously empty descriptions of the four constants are filled in as well.
lacatoire
force-pushed
the
sync-src/sodium-aes256gcm-aarch64-84
branch
from
August 25, 2026 19:38
eb25bf1 to
74eae01
Compare
There was a problem hiding this comment.
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before PHP 8.4 the
HAVE_AESGCMguard inext/sodium/libsodium.ccovered x86 and x86_64 only. PHP 8.4 extends it to__aarch64__and_M_ARM64, which changes two distinct things on aarch64:sodium_crypto_aead_aes256gcm_is_available()may now returntrue; before 8.4 it was compiled as a plainRETURN_FALSE.sodium_crypto_aead_aes256gcm_encrypt(),..._decrypt(),..._keygen()and the fourSODIUM_CRYPTO_AEAD_AES256GCM_*constants are now defined at all; before 8.4 calling one raisedError: Call to undefined function.sodium_crypto_aead_aes256gcm_is_available()sits outside the guard and has always existed, so it is the one member of the family whose availability did not change. This adds a changelog entry to all four function pages and fills in the four constant descriptions, which were empty. The table shared by the encrypt, decrypt and keygen pages is declared once assodium.changelog.aes256gcm-aarch64inlanguage-snippets.ent; translations that lack the entity fall back to the English one.Verified on emulated aarch64: 8.3 returns
falsewith the other functions undefined, 8.4 returnstruewith them defined. With libsodium 1.0.18, 8.4 defines them but still returnsfalse, hence may in the wording.Sources
1816403d84. The pull request title mentions AEGIS only; the aarch64 change rides along in the same commit ("Also don't prevent usage of AES-GCM on aarch64").UPGRADINGandNEWSfor PHP 8.4.git tag --contains 1816403d84yieldsphp-8.4.0RC1andphp-8.4.0only.Tracker: PHP 8.4 Documentation Tracker.