Skip to content

0.2.3 — Resolve optional declarations safely

Choose a tag to compare

@roukmoute roukmoute released this 14 Oct 22:50
· 10 commits to master since this release

Optional encryption and catalog-version declarations now use the bounded document resolver before feature validation. An absent or null /Encrypt, including an indirect null, does not request authentication. Malformed values remain parse errors; a non-null encryption dictionary raises the dedicated EncryptedPdfException without decrypting the source.

Indirect catalog /Version names and null values are accepted while preserving the original header and explicitly rejecting unsupported versions.

Validation: 342 tests and 813 assertions on PHP 8.3, 8.4 and 8.5, PHPStan, format checks, Composer platform/audit checks and independent pypdf/qpdf fixtures. Exact candidate: 8c7d013dafd6c5821eecc27af8c8af225d4de584, CI.

Changelog · Security boundary · Documentation