All notable changes to this project will be documented in this file, in reverse chronological order by release.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #60 adds support for PHP 7.3.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #52 adds support for PHP 7.2.
-
#55 updates
Zend\Crypt\Hmacto usehash_hmac_algosinstead ofhmac_algoswhen it is present. -
#50 updates all classes to import functions and constants they use.
- Nothing.
- Nothing.
- Nothing.
- #42 Added the CTR mode for OpenSSL.
- Nothing.
- Nothing.
- #48 Incorrect Rsa type declaration in Hybrid constructor.
- #38 Support of GCM and CCM encryption mode for OpenSSL with PHP 7.1+
- Nothing.
- Nothing.
- Nothing.
- #32 adds a new Hybrid encryption utility, to allow OpenPGP-like encryption/decryption of messages using OpenSSL. See the documentation for details.
- Nothing.
- Nothing.
- Nothing.
- #22 adds a requirement
on
ext/mbstringin order to install successfully. - #25 adds a new symmetric encryption adapter for the OpenSSL extension; this is now the default adapter used internally by the component when symmetric encryption is required.
- #25 adds support for zend-math v3.
- #26 adds
Zend\Crypt\Password\Bcrypt::benchmarkCost(), which allows you to find the maximum cost value possible for your hardware within a 50ms timeframe. - #11 adds a new option
to the
Zend\Crypt\PublicKey\RsaOptionsclass,openssl_padding(orsetOpensslPadding(); this is now consumed inZend\Crypt\PublicKey\Rsa::encrypt()andZend\Crypt\PublicKey\Rsa::decrypt(), instead of the optional$paddingargument.
- #25 deprecates usage of the mcrypt symmetric encryption adapter when used on PHP 7 versions, as PHP 7.1 will deprecate the mcrypt extension.
- #11 removes the
optional
$paddingargument from each ofZend\Crypt\PublicKey\Rsa'sencrypt()anddecrypt()methods; you can now specify the value via theRsaOptions. - #25 removes support for zend-math v2 versions.
- #29 removes support for PHP 5.5.
- #22 updates all
occurrences of
substr()andstrlen()to usemb_substr()andmb_strlen(), respectively. This provides better security with binary values. - #25 updates the
Zend\Crypt\Password\Bcryptimplementation to usepassword_hash()andpassword_verify()internally, as they are supported in all PHP versions we support. - #19 fixes the
DiffieHellmanpublickey implementation to initialize theBigIntegeradapter from zend-math as the first operation of its constructor, fixing a fatal error that occurs when binary data is provided.
- #18 adds documentation, and publishes it to https://zendframework.github.io/zend-crypt/
- Nothing.
- Removes the (development) dependency on zend-config; tests that used it
previously have been updated to use
ArrayObject, which implements the same behavior being tested.
- #4 replaces
the zend-servicemanager with container-interop, and refactors the
various plugin managers to implement that interface instead of extending the
AbstractPluginManager.
- Nothing.
- Nothing.
- Nothing.
-
ZF2015-10:
Zend\Crypt\PublicKey\Rsa\PublicKeyhas a call toopenssl_public_encrypt()which used PHP's default$paddingargument, which specifiesOPENSSL_PKCS1_PADDING, indicating usage of PKCS1v1.5 padding. This padding has a known vulnerability, the Bleichenbacher's chosen-ciphertext attack, which can be used to recover an RSA private key. This release contains a patch that changes the padding argument to useOPENSSL_PKCS1_OAEP_PADDING.Users upgrading to this version may have issues decrypting previously stored values, due to the change in padding. If this occurs, you can pass the constant
OPENSSL_PKCS1_PADDINGto a new$paddingargument inZend\Crypt\PublicKey\Rsa::encrypt()anddecrypt()(though typically this should only apply to the latter):$decrypted = $rsa->decrypt($data, $key, $mode, OPENSSL_PKCS1_PADDING);
where
$rsais an instance ofZend\Crypt\PublicKey\Rsa.(The
$keyand$modeargument defaults arenullandZend\Crypt\PublicKey\Rsa::MODE_AUTO, if you were not using them previously.)We recommend re-encrypting any such values using the new defaults.
- Nothing.
- Nothing.
- Nothing.
-
ZF2015-10:
Zend\Crypt\PublicKey\Rsa\PublicKeyhas a call toopenssl_public_encrypt()which used PHP's default$paddingargument, which specifiesOPENSSL_PKCS1_PADDING, indicating usage of PKCS1v1.5 padding. This padding has a known vulnerability, the Bleichenbacher's chosen-ciphertext attack, which can be used to recover an RSA private key. This release contains a patch that changes the padding argument to useOPENSSL_PKCS1_OAEP_PADDING.Users upgrading to this version may have issues decrypting previously stored values, due to the change in padding. If this occurs, you can pass the constant
OPENSSL_PKCS1_PADDINGto a new$paddingargument inZend\Crypt\PublicKey\Rsa::encrypt()anddecrypt()(though typically this should only apply to the latter):$decrypted = $rsa->decrypt($data, $key, $mode, OPENSSL_PKCS1_PADDING);
where
$rsais an instance ofZend\Crypt\PublicKey\Rsa.(The
$keyand$modeargument defaults arenullandZend\Crypt\PublicKey\Rsa::MODE_AUTO, if you were not using them previously.)We recommend re-encrypting any such values using the new defaults.
hotfix/5