Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Crypto Bundle Laravel Package

gdbots/crypto-bundle

Symfony bundle that integrates Gdbots crypto services into your PHP application, providing configuration and dependency injection for encryption, signing, and key management. Simplifies wiring secure crypto components and related services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: Low, and lower than before. gdbots/crypto-bundle remains a Symfony bundle rather than a Laravel package, and v5.0.0 hardens that positioning by requiring Symfony 8.x and PHP 8.5+. Laravel does not run the Symfony bundle/kernel extension model this package depends on for configuration, service registration, and bootstrapping, so the bundle’s value proposition in a Laravel app is effectively nil. The underlying dependency, defuse/php-encryption, is framework-agnostic and remains the only genuinely reusable piece. A Laravel TPM should treat the bundle itself as non-adoptable and, if anything, use it as a reference implementation.

Integration feasibility: Not feasible as a direct dependency for mainstream Laravel today, and unlikely to become feasible soon. Laravel 10/11/12 target PHP 8.2–8.4 and ship with Symfony 7.x components; v5.0.0’s symfony/* ^8.0 and php >=8.5 constraints will collide in Composer with Laravel’s own Symfony component pins and with the PHP versions most teams run. Even if a future Laravel release adopts Symfony 8 and PHP 8.5, the bundle still expects Symfony DI extension semantics that Laravel does not provide. The only viable path remains a Laravel-owned adapter over defuse/php-encryption (or Laravel’s native Crypt), with the bundle explicitly excluded.

Technical risk: Higher than the prior assessment, which was already high relative to value. The package still shows 0 stars and 0 dependents with a low opportunity score (~34.88), so there is essentially no external validation. v5.0.0 is a major-version break that simultaneously raises the PHP floor to 8.5 and the Symfony floor to 8.x — a combination that narrows the addressable audience to bleeding-edge Symfony 8 applications. That release pattern suggests the maintainers optimize for their own gdbots/Symfony estate, not for downstream Laravel consumers, and it increases the odds of future breaks. Wrapper abandonment, delayed security propagation from defuse/php-encryption, and Symfony/Laravel compatibility drift are all now more acute. License remains acceptable (Apache-2.0). Key management, rotation, and storage remain application responsibilities; the bundle does not remove them.

Key questions:

  • Does v5.0.0 provide any capability beyond what defuse/php-encryption offers, or is it purely a Symfony 8/PHP 8.5 compatibility release?
  • Are the symfony/* constraints ^8.0 strictly, or is there any || ^7.0 allowance that could coexist with Laravel’s Symfony 7 components?
  • Is the PHP 8.5 floor a hard requirement, or can it be relaxed in a fork without functional changes?
  • What exact services, configuration trees, console commands, or event subscribers does the bundle add beyond defuse/php-encryption?
  • Does the bundle support envelope encryption, KMS/HSM-backed keys, or key rotation workflows, or does it expect raw keys in configuration?
  • Is the package maintained by an active internal team, and what is the security-patch SLA — particularly now that it tracks a pre-GA-adjacent PHP version?
  • Can the integration be isolated behind a Laravel-owned Encryptor/Decryptor contract so the bundle can be replaced without touching domain code?
  • What test coverage and test vectors exist for wrong-key, tampered-ciphertext, rotation, and multi-tenant key-selection cases?

Integration Approach

Stack fit: Poor. v5.0.0 requires PHP 8.5+ and Symfony 8.x, while Laravel 10/11/12 target PHP 8.2–8.4 and Symfony 7.x components. Installing the bundle would either fail Composer resolution or force a Laravel application onto an unsupported PHP/Symfony combination. The correct stack fit remains defuse/php-encryption (or Laravel’s Crypt facade) wrapped in a Laravel service provider and application interface — no bundle, no symfony/framework-bundle dependency.

Migration path: Unchanged in principle, and now more clearly the only path. If migrating from Laravel’s Crypt facade, run a dual-read period: decrypt existing payloads with Laravel Crypt, encrypt new payloads with the chosen defuse implementation, and re-encrypt on write or via a batch job. Do not mix algorithms or key formats without a version tag in the ciphertext envelope. If a team is coming from a gdbots/Symfony application, extract the required behavior from the bundle’s configuration and service definitions and reproduce it in Laravel — do not attempt to carry the Symfony 8 bundle into the Laravel app.

Compatibility: v5.0.0 is a hard compatibility break: PHP >=8.5 and Symfony ^8.0. Verify the exact Composer constraints before any spike — composer why-not against the target Laravel version should confirm the conflict quickly. Also note that PHP 8.5 is very new; most production Laravel estates will not be on it for several quarters, and Laravel’s own support matrix will lag. Treat the bundle as incompatible with current Laravel and re-evaluate only if a future Laravel release moves to Symfony 8 and the team has standardised on PHP 8.5.

Sequencing:

  1. Classify data and define the threat model: what is encrypted, why, key ownership, retention, and rotation requirements.
  2. Formally rule the bundle out for the current cycle; record v5.0.0’s PHP 8.5/Symfony 8 constraints as the blocking reason.
  3. Run a short PoC using defuse/php-encryption directly in Laravel to validate encrypt/decrypt, key loading, and failure behavior.
  4. Decide key storage: environment secret, secrets manager, KMS/HSM, or password-protected key. Document rotation and recovery.
  5. Define a Laravel-owned crypto interface and bind the direct library (or native Crypt) behind it.
  6. Add integration tests for round-trip encryption, tampered ciphertext, wrong key, missing key, rotation, and legacy Crypt fallback.
  7. Roll out behind a feature flag by data class, starting with low-risk fields and expanding after operational review.
  8. Re-open the bundle question only if (a) the team adopts Symfony 8 + PHP 8.5, and (b) a specific gdbots-provided capability is required that the underlying library cannot supply.

Operational Impact

Maintenance: Assume zero external maintenance for Laravel consumers. v5.0.0 signals that the release cadence tracks the maintainers’ Symfony 8 / PHP 8.5 estate, not broad downstream compatibility; expect future majors to move in the same direction. With 0 stars and 0 dependents there is little community pressure to preserve backward compatibility or backport fixes. Any adoption would require pinning, forking, or vendoring — all of which add work that the underlying library does not.

Support: Community support is effectively unavailable. Escalation is limited to GitHub issues and whatever internal gdbots relationship exists. A Laravel team adopting this would own the integration entirely, including reversing the Symfony 8 coupling. Budget for an internal fork only if a concrete gdbots requirement is identified; otherwise avoid.

Scaling: Encryption remains CPU-bound and fine for request-sized payloads. Large files or high-volume batch encryption need chunking, queue workers, and memory limits. Password-protected keys or KMS calls add latency per operation; cache derived keys carefully and avoid per-request KMS round trips. Multi-tenant designs need explicit key selection and isolation to prevent cross-tenant decryption. The bundle does not solve envelope encryption or horizontal key distribution — this was true before v5.0.0 and is unchanged by it.

Failure modes: Key loss means permanent data loss; key mismatch produces MAC/decryption failures. Tampered or truncated ciphertext must fail closed, never fall back to plaintext. Misconfigured Laravel service binding can silently route traffic to the wrong encryptor. With v5.0.0, add dependency-resolution failure as a first-order risk: attempting to install the bundle will either break the build or force an unsupported PHP/Symfony upgrade across the application. Rotation without a versioned ciphertext envelope can strand old data. Missing-key behavior in production should be tested and alertable.

Ramp-up: Effectively zero value in attempting to ramp on the bundle for Laravel work — the constraint mismatch blocks onboarding before any learning occurs. Ramp-up for the recommended alternative (Laravel-owned interface over defuse/php-encryption) is small for engineers familiar with Laravel’s container and Composer: a PoC is 1–3 days; production hardening, key-management design, rotation runbooks, and migration testing are 1–2 sprints depending on data sensitivity. TPM recommendation: do not adopt gdbots/crypto-bundle. v5.0.0’s PHP 8.5 / Symfony 8 requirements remove it from consideration for any current Laravel estate. Use defuse/php-encryption behind an application-owned interface, or retain Laravel Crypt with a planned KMS/key-rotation strategy, and treat the bundle strictly as a reference implementation. Revisit only on a major Laravel platform upgrade that lands on Symfony 8 and PHP 8.5.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle