fyre / encryption
An encryption library.
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreEncryption is a free, open-source encryption library for PHP.
Table Of Contents
Installation
Using Composer
composer require fyre/encryption
In PHP:
use Fyre\Encryption\Encryption;
Methods
Clear
Clear all instances and configs.
Encryption::clear();
Get Config
Get an Encrypter config.
$key
is a string representing the Encrypter key.
$config = Encryption::getConfig($key);
Alternatively, if the $key
argument is omitted an array containing all configurations will be returned.
$config = Encryption::getConfig();
Get Key
Get the key for an Encrypter instance.
$encrypter
is an Encrypter.
$key = Encryption::getKey($encrypter);
Has Config
Check if an Encrypter config exists.
$key
is a string representing the Encrypter key, and will default toEncryption::DEFAULT
.
$hasConfig = Encryption::hasConfig($key);
Is Loaded
Check if an Encrypter instance is loaded.
$key
is a string representing the Encrypter key, and will default toEncryption::DEFAULT
.
$isLoaded = Encryption::isLoaded($key);
Load
Load an Encrypter.
$options
is an array containing configuration options.
$encrypter = Encryption::load($options);
Set Config
Set the Encrypter config.
$key
is a string representing the Encrypter key.$options
is an array containing configuration options.
Encryption::setConfig($key, $options);
Alternatively, a single array can be provided containing key/value of configuration options.
Encryption::setConfig($config);
Unload
Unload an Encrypter.
$key
is a string representing the Encrypter key, and will default toEncryption::DEFAULT
.
$unloaded = Encryption::unload($key);
Use
Load a shared Encrypter instance.
$key
is a string representing the Encrypter key, and will default toEncryption::DEFAULT
.
$encrypter = Encryption::use($key);
Encrypters
You can load a specific encrypter by specifying the className
option of the $options
variable above.
Custom encrypters can be created by extending \Fyre\Encryption\Encrypter
, ensuring all below methods are implemented.
Decrypt
Decrypt data.
$data
is the encrypted data.$key
is a string representing the encryption key.
$decrypted = $encrypter->decrypt($data, $key);
Encrypt
Encrypt data.
$data
is the data to encrypt.$key
is a string representing the encryption key.
$encrypted = $encrypter->encrypt($data, $key);
Generate Key
Generate an encryption key.
$key = $encrypter->generateKey();
OpenSSL
The OpenSSL encrypter can be loaded using default configuration using the "openssl" key.
$encrypter = Encryption::use('openssl');
You can also load the encrypter using custom configuration.
$key
is a string representing the encrypter key.$options
is an array containing configuration options.className
must be set to\Fyre\Encryption\Handlers\OpenSSLEncrypter::class
.cipher
is a string indicating the cipher, and will default to "AES-256-CTR".
Encryption::setConfig($key, $options); $encrypter = Encryption::use($key);
Sodium
The Sodium encrypter is the default handler.
$encrypter = Encryption::use();
You can also load the encrypter using custom configuration.
$key
is a string representing the encrypter key.$options
is an array containing configuration options.className
must be set to\Fyre\Encryption\Handlers\SodiumEncrypter::class
.blockSize
is a number indicating the block size, and will default to 16.
Encryption::setConfig($key, $options); $encrypter = Encryption::use($key);