lsnepomuceno/signet-pdf
Signet PDF is a Laravel package for digitally signing PDF documents. It provides a simple API for adding X.509 certificate signatures to existing or generated PDFs, helping PHP applications implement document authenticity, signature validation, and secure signing workflows with minimal setup.
PBAD_ archival entries PAdES does not define — means the package can target regulated Brazilian signing use cases rather than generic PDF signing. This is the difference between a nice utility and a product feature that legal/compliance will approve.$signed->receipt() reporting what was signed supports customer-facing evidence and internal audit requirements. It is not a full audit trail, but it is a useful primitive for support and dispute workflows.SignaturePolicy::forProfile(PadesBLT) now returns null because ITI publishes no policy a B-LT signature satisfies. That is a compliance correction, not a regression to work around: any roadmap item that assumed B-LT should be re-scoped to B-T or B-LTA.DocumentBuffer change touches any code that treated PreparedSignature::$document as a string — streaming to disk, hashing, storage adapters, queued jobs. Teams should budget a migration ticket, not assume a drop-in upgrade.Consider it when:
Look elsewhere when:
For executives: This release turns a PDF signing library into something we can credibly use for Brazilian documents at production scale. Three things changed. First, large documents no longer require memory proportional to a multiple of the file — a 300 MB document now signs in roughly 310 MB instead of 602 MB, which removes a hard ceiling on the document types we can support. Second, signatures can be produced without the private key entering our application process, which aligns with enterprise security expectations and enables HSM or customer-managed-key offerings. Third, the ICP-Brasil output is accepted by the country’s own Verificador, including the archival policy declarations and PBAD_ entries that generic PAdES does not cover. Commercially, this is a credible path to reducing per-envelope vendor spend and differentiating on Brazilian compliance. The cost is that we take on PKI operations — certificate lifecycle, key custody, and archival validation — which is real but bounded and can be staffed.
For engineering: The upgrade is a contained 3.0.0 migration with a published upgrade guide. The main work is the DocumentBuffer change: any code that assumed PreparedSignature::$document was a string needs to move to the buffer API. intervention/image moves to 4.x. SignaturePolicy::forProfile(PadesBLT) now correctly returns null because ITI publishes no policy that a B-LT signature satisfies — do not treat that as a bug; re-scope any B-LT work to B-T or B-LTA. The payoff is streaming signing, remote/HSM signing, a receipt primitive, and a documentation site published for this line, with 1.x and 2.x archived separately.
How can I help you explore Laravel packages today?