Download the PHP package geekcell/sodium-bundle without Composer
On this page you can find all versions of the php package geekcell/sodium-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download geekcell/sodium-bundle
More information about geekcell/sodium-bundle
Files in geekcell/sodium-bundle
Package sodium-bundle
Short Description A Symfony bundle to interact with PHP's Sodium extension
License MIT
Informations about the package sodium-bundle
geekcell/sodium-bundle
A Symfony bundle to interact with PHP's Sodium extension.
Installation
To use this package, require it in your Symfony project with Composer.
Verify that the bundle has been enabled in config/bundles.php
Limitations
At this point in time, this bundle only supports libsodium's anonymous and authenticated public-key encryption.
Configuration
Create a config file config/packages/geek_cell_sodium.yaml
where you configure your base64-encoded public and private/secret keys for encryption and decryption. It is very strongly recommended to not store them as plain text, but read them from your .env.local
, which is added to your .gitignore
file.
Only the public_key
field is mandatory, if you only plan for anonymous (shared) public-key encryption in your app. For both authenticated and anonymous decryption, a private_key
must also be configured, or an exception is thrown during runtime.
This bundle ships with a console command sodium:generate-keys
to generate a set of public/private keys for you.
Usage
Simply typehint the GeekCell\SodiumBundle\Sodium\Sodium
service in your code and make use of its encrypt
and decrypt
methods:
Anonymous encryption
The example below demonstrates anonymous encryption using only a shared public key. In order to decrypt a message, the receiver needs both public and corresponding private/secret key.
Authenticated encryption
Alternatively you can use authenticated public-key encyption to encrypt specifically encrypt messages by using a recipient's public key and a nonce. When received, the recipient can then decrypt a cipher using the sender's public key and nonce.
Facade
For situations where you cannot inject GeekCell\SodiumBundle\Sodium\Sodium
via Symfony's DIC (for example if you want to directly encrypt or decrypt fields of your Doctine entity), you can use a container-facade for your convenience:
For more information, check out geekcell/container-facade.
All versions of sodium-bundle with dependencies
geekcell/container-facade Version ^1.0
symfony/dependency-injection Version ^6.0
symfony/http-kernel Version ^6.0
symfony/console Version ^6.0
symfony/config Version ^6.0