Definition at line 35 of file Openssl.php.
◆ __construct()
__construct |
( |
|
$options = array() | ) |
|
Class constructor Available options 'public' => public key 'private' => private key 'envelope' => envelope key 'passphrase' => passphrase 'compression' => compress value with this compression adapter 'package' => pack envelope keys into encrypted string, simplifies decryption
- Parameters
-
string | array | $options | Options for this adapter |
Definition at line 84 of file Openssl.php.
86 if (!extension_loaded(
'openssl')) {
87 #require_once 'Zend/Filter/Exception.php'; 99 if (array_key_exists(
'passphrase',
$options)) {
104 if (array_key_exists(
'compression',
$options)) {
109 if (array_key_exists(
'package',
$options)) {
setCompression($compression)
setPassphrase($passphrase)
◆ _setKeys()
Sets the encryption keys
- Parameters
-
string | array | $keys | Key with type association |
- Returns
- Zend_Filter_Encrypt_Openssl
Definition at line 123 of file Openssl.php.
125 if (!is_array($keys)) {
126 #require_once 'Zend/Filter/Exception.php'; 130 foreach ($keys as
$type => $key) {
132 $file =
fopen($key,
'r');
133 $cert = fread($file, 8192);
137 $key = count($this->_keys[
$type]);
142 $test = openssl_pkey_get_public($cert);
143 if ($test ===
false) {
144 #require_once 'Zend/Filter/Exception.php'; 148 openssl_free_key($test);
149 $this->_keys[
'public'][$key] = $cert;
152 $test = openssl_pkey_get_private($cert, $this->_passphrase);
153 if ($test ===
false) {
154 #require_once 'Zend/Filter/Exception.php'; 158 openssl_free_key($test);
159 $this->_keys[
'private'][$key] = $cert;
162 $this->_keys[
'envelope'][$key] = $cert;
◆ decrypt()
Defined by Zend_Filter_Interface
Decrypts $value with the defined settings
- Parameters
-
string | $value | Content to decrypt |
- Returns
- string The decrypted content
- Exceptions
-
Implements Zend_Filter_Encrypt_Interface.
Definition at line 421 of file Openssl.php.
426 if (count($this->_keys[
'private']) !== 1) {
427 #require_once 'Zend/Filter/Exception.php'; 431 if (!$this->_package && empty($envelope)) {
432 #require_once 'Zend/Filter/Exception.php'; 436 foreach($this->_keys[
'private'] as $key => $cert) {
437 $keys = openssl_pkey_get_private($cert, $this->
getPassphrase());
440 if ($this->_package) {
441 $details = openssl_pkey_get_details($keys);
443 $fingerprint = md5(
$details[
'key']);
445 $fingerprint = md5(
"ZendFramework");
452 $header = unpack(
'H32print/nsize', substr(
$value, $length, 18));
454 if ($header[
'print'] == $fingerprint) {
455 $envelope = substr(
$value, $length, $header[
'size']);
458 $length += $header[
'size'];
465 $crypt = openssl_open(
$value, $decrypted, $envelope, $keys);
466 openssl_free_key($keys);
468 if ($crypt ===
false) {
469 #require_once 'Zend/Filter/Exception.php'; 470 throw new Zend_Filter_Exception(
'Openssl was not able to decrypt you content with the given options');
474 if (!empty($this->_compression)) {
475 #require_once 'Zend/Filter/Decompress.php'; 477 $decrypted = $decompress->filter($decrypted);
◆ encrypt()
Encrypts $value with the defined settings Note that you also need the "encrypted" keys to be able to decrypt
- Parameters
-
string | $value | Content to encrypt |
- Returns
- string The encrypted content
- Exceptions
-
Implements Zend_Filter_Encrypt_Interface.
Definition at line 354 of file Openssl.php.
356 $encrypted = array();
357 $encryptedkeys = array();
359 if (count($this->_keys[
'public']) == 0) {
360 #require_once 'Zend/Filter/Exception.php'; 365 $fingerprints = array();
367 foreach($this->_keys[
'public'] as $key => $cert) {
368 $keys[$key] = openssl_pkey_get_public($cert);
369 if ($this->_package) {
370 $details = openssl_pkey_get_details($keys[$key]);
372 $details = array(
'key' =>
'ZendFramework');
381 if (!empty($this->_compression)) {
382 #require_once 'Zend/Filter/Compress.php'; 387 $crypt = openssl_seal(
$value, $encrypted, $encryptedkeys, $keys);
388 foreach ($keys as $key) {
389 openssl_free_key($key);
392 if ($crypt ===
false) {
393 #require_once 'Zend/Filter/Exception.php'; 394 throw new Zend_Filter_Exception(
'Openssl was not able to encrypt your content with the given options');
397 $this->_keys[
'envelope'] = $encryptedkeys;
400 if ($this->_package) {
401 $header = pack(
'n', count($this->_keys[
'envelope']));
402 foreach($this->_keys[
'envelope'] as $key => $envKey) {
403 $header .= pack(
'H32n', $fingerprints[$key], strlen($envKey)) . $envKey;
406 $encrypted = $header . $encrypted;
◆ getCompression()
Returns the compression
- Returns
- array
Definition at line 303 of file Openssl.php.
◆ getEnvelopeKey()
Returns all envelope keys
- Returns
- array
Definition at line 248 of file Openssl.php.
250 $key = $this->_keys[
'envelope'];
◆ getPackage()
Returns if header should be packaged
- Returns
- boolean
Definition at line 329 of file Openssl.php.
◆ getPassphrase()
Returns the passphrase
- Returns
- string
Definition at line 281 of file Openssl.php.
◆ getPrivateKey()
Returns all private keys
- Returns
- array
Definition at line 210 of file Openssl.php.
212 $key = $this->_keys[
'private'];
◆ getPublicKey()
Returns all public keys
- Returns
- array
Definition at line 177 of file Openssl.php.
179 $key = $this->_keys[
'public'];
◆ setCompression()
setCompression |
( |
|
$compression | ) |
|
Sets a internal compression for values to encrypt
- Parameters
-
string | array | $compression | |
- Returns
- Zend_Filter_Encrypt_Openssl
Definition at line 314 of file Openssl.php.
316 if (is_string($this->_compression)) {
317 $compression = array(
'adapter' => $compression);
320 $this->_compression = $compression;
◆ setEnvelopeKey()
Sets envelope keys
- Parameters
-
string | array | $options | Envelope keys |
- Returns
- Zend_Filter_Encrypt_Openssl
Definition at line 260 of file Openssl.php.
262 if (is_array($key)) {
264 if (
$type !==
'envelope') {
270 $key = array(
'envelope' => $key);
◆ setPackage()
◆ setPassphrase()
setPassphrase |
( |
|
$passphrase | ) |
|
◆ setPrivateKey()
setPrivateKey |
( |
|
$key, |
|
|
|
$passphrase = null |
|
) |
| |
Sets private keys
- Parameters
-
string | $key | Private key |
string | $passphrase | |
- Returns
- Zend_Filter_Encrypt_Openssl
Definition at line 223 of file Openssl.php.
225 if (is_array($key)) {
227 if (
$type !==
'private') {
233 $key = array(
'private' => $key);
236 if ($passphrase !==
null) {
setPassphrase($passphrase)
◆ setPublicKey()
◆ toString()
Returns the adapter name
- Returns
- string
Definition at line 488 of file Openssl.php.
◆ $_compression
◆ $_keys
Initial value:= array(
'public' => array(),
'private' => array(),
'envelope' => array()
)
Definitions for encryption array( 'public' => public keys 'private' => private keys 'envelope' => resulting envelope keys )
Definition at line 45 of file Openssl.php.
◆ $_package
◆ $_passphrase
The documentation for this class was generated from the following file:
- vendor/magento/zendframework1/library/Zend/Filter/Encrypt/Openssl.php