miserenkov/yii2-security Yii2 extension for openssl encryption by public/private keys

encryptopensslsecuritypublicprivatekeysdecrypt

Yii2 Security extension

Yii2 extension for encryption and decryption by openssl public/private keys

LicenseLatest Stable VersionLatest Unstable VersionTotal DownloadsBuild StatusDependency Status

Support

GitHub issues.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist miserenkov/yii2-security "^1.0"

or add

"miserenkov/yii2-security": "^1.0"

to the require section of your composer.json file.

Configuration

To use security extension, you should configure it in the application configuration like the following

'components' => [
    ...
    'security' => [
        'class' => 'miserenkov\security\Security',

        'certificateFile' => '',    // alias or path to default certificate file
        // or
        'publicKeyFile' => '',      // alias or path to default public key file

        'privateKeyFile' => '',     // alias or path to default private key file
        'passphrase' => '',         // passphrase to default private key (if exists)
    ],
    ...
],

Basic usages

Encryption

Asymmetric encryption

Will return base64 encoded encrypted data.

With default public key
Yii::$app->security->encryptByPublicKey(
    $data           // string data for ecnryption
);
With custom public key
Yii::$app->security->encryptByPublicKey(
    $data,          // string data for ecnryption
    $publicKey      // alias or path to custom public key or PEM formatted public key
);

Hybrid encryption

Will return array from encryption key and encrypted data (['key' => '...', 'data' => '...']).

With default public key
Yii::$app->security->encryptHybrid(
    $data           // string data for ecnryption
);
With custom public key
Yii::$app->security->encryptHybrid(
    $data,          // string data for ecnryption
    $publicKey      // alias or path to custom public key or PEM formatted public key
);

Decryption

Asymmetric decryption

Will return decrypted data.

With default private key
Yii::$app->security->decryptByPrivateKey(
    $data           // string data for decryption
);
With custom private key
Yii::$app->security->decryptByPrivateKey(
    $data,          // string data for decryption
    $privateKey,    // alias or path to custom private key or PEM formatted private key
    $passphrase     // passphrase for private key (if exists)
);

Hybrid encryption

Will return decrypted data.

With default private key
Yii::$app->security->decryptHybrid(
    $data,          // string data for decryption or array from 
                    // encryption key and ecnrypted data (['key' => '...', 'data' => '...'])
    $key            // encryption key if $data as string
);
With custom private key
Yii::$app->security->decryptHybrid(
    $data,          //string data for decryption or array from 
                    // encryption key and ecnrypted data (['key' => '...', 'data' => '...'])
    $key,           // encryption key if $data as string
    $privateKey,    // alias or path to custom private key or PEM formatted private key
    $passphrase     // passphrase for private key (if exists)
);

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



v1.0 is the latest of one release



MIT license
Stats
0 github stars & 0 github forks
0 downloads in the last day
1 downloads in the last 30 days
1 total downloads