jdr/jws-ecdsa
A PHP package for signing and verifying JSON Web Signatures (JWS) with ECDSA. It provides a straightforward API for generating compact JWS tokens and validating signatures in Laravel and other PHP applications, useful for secure token exchange and standards-based JWT/JWS workflows.
lcobucci/jwt library sign and verify ES256/ES384/ES512 tokens instead of only RS256/HS256. That capability is the gate on several product features: "Sign in with Apple," OIDC integrations with providers that publish EC JWKS, compact tokens for mobile/REST clients where smaller key and signature size matter, and service-to-service auth in environments that mandate ECDSA.lcobucci/jwt release. Either way it closes an open question cheaply.Consider it when:
lcobucci/jwt and pinned to a version that lacks native ECDSA signers. Verify this first — later 4.x releases add ECDSA support, which makes this dependency unnecessary.Look elsewhere when:
lcobucci/jwt version already ships ECDSA signers — use the library directly, add no dependency.web-token/jwt-framework (broad algorithm and JWK support) or firebase/php-jwt (ES256, far larger adoption).lcobucci/jwt; adopting it in order to use this package is disproportionate.For executives (one paragraph): This is a small, MIT-licensed PHP add-on that lets our existing JWT library sign and verify tokens using ECDSA instead of RSA. That matters only if the roadmap includes ECDSA-dependent work — most commonly "Sign in with Apple," OIDC providers that publish EC keys, or token-size constraints on mobile. The capability is real and cheap to obtain, but the package itself has essentially no adoption (one star, no dependents, a single maintainer), so it is not something to depend on blindly. Recommended framing: it is an enabler, not a strategic dependency. Treat it as reference code — vendor or fork it, wrap it behind our own interface, and keep the option to replace it with the upstream library's built-in support or a better-maintained alternative at near-zero switching cost. Net: low effort, low lock-in, value contingent on the identity roadmap.
For engineering (the ask): Confirm whether our pinned lcobucci/jwt version already supports ES256/ES384/ES512 — if it does, we close this out with no new dependency. If it doesn't, adopt the package's logic by vendoring or forking it rather than consuming it from Packagist; review the signature-encoding (DER vs. fixed-width R‖S) and curve/hash pairing, add test vectors from a known-good source, pin the commit, and expose it only through our internal signer abstraction so the JWT library and algorithm provider remain independently replaceable. Validate round-trips against at least one external verifier, not just self-verification. Flag any requirement for KMS/HSM-backed keys, rotation, or JWKS distribution early — neither this package nor the underlying library covers that, and it would change the scope materially.
How can I help you explore Laravel packages today?