Skip to content

Stdlib: openssl_pbkdf2() JIT/AOT compile-time bake (#32410) - #32429

Merged
PurHur merged 1 commit into
masterfrom
fix/32410-openssl-pbkdf2-aot
Aug 18, 2026
Merged

PurHur merged 1 commit into
masterfrom
fix/32410-openssl-pbkdf2-aot

Conversation

@PurHur

@PurHur PurHur commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #32410

Test plan

  • ./script/docker-exec.sh -- bash -lc './script/aot-smoke.sh' → 8 passed, 0 failed
  • ./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/issue_openssl_pbkdf2_aot.php' → Zend hex + false + ValueError
  • ./script/docker-exec.sh -- bash -lc 'PHP_COMPILER_HELPER_RUNTIME_O=0 php bin/compile.php -o /tmp/pbkdf2.bin test/repro/issue_openssl_pbkdf2_aot.php && /tmp/pbkdf2.bin' → same as VM
  • ./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php -d memory_limit=1536M vendor/bin/phpunit --filter OpensslPbkdf2JitTest' → OK (1 test, 6 assertions)
  • php script/bootstrap-inventory.php --check → OK 7624/7624
  • php script/check-selfhost-spine-coverage-sync.php → OK
  • Not run: north-star5-verify --strict, full make test-harness, AOT bin2hex (pre-existing SIGSEGV)

Made with Cursor

VM already matched Zend; call() threw LogicException so AOT could not compile
PBKDF2. Bake literal keys via VmHashNative (php-src openssl.c PKCS5_PBKDF2_HMAC)
because JitHash::hashPbkdf2 SIGSEGVs under AOT on this tree.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 87e5de9 into master Aug 18, 2026
0 of 2 checks passed
@PurHur
PurHur deleted the fix/32410-openssl-pbkdf2-aot branch August 18, 2026 22:27
PurHur added a commit that referenced this pull request Aug 18, 2026
… args (#32410)

#32429 bake only handles compile-time literals. Runtime HMAC-over-hex-hash
lowers password/salt/key_length/iterations/digest_algo at AOT time.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stdlib: openssl_pbkdf2() JIT/AOT lowering missing — VM path only (ext/openssl/openssl.c)

1 participant