All notable changes to this project will be documented in this file, in reverse chronological order by release.
ArrayObject, which implements the same
behavior being tested.AbstractPluginManager.Zend\Crypt\PublicKey\Rsa\PublicKey has a call to openssl_public_encrypt()
which used PHP's default $padding argument, which specifies
OPENSSL_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 use OPENSSL_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_PADDING to a new $padding argument in
Zend\Crypt\PublicKey\Rsa::encrypt() and decrypt() (though typically this
should only apply to the latter):
$decrypted = $rsa->decrypt($data, $key, $mode, OPENSSL_PKCS1_PADDING);
where $rsa is an instance of Zend\Crypt\PublicKey\Rsa.
(The $key and $mode argument defaults are null and
Zend\Crypt\PublicKey\Rsa::MODE_AUTO, if you were not using them previously.)
We recommend re-encrypting any such values using the new defaults.
Zend\Crypt\PublicKey\Rsa\PublicKey has a call to openssl_public_encrypt()
which used PHP's default $padding argument, which specifies
OPENSSL_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 use OPENSSL_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_PADDING to a new $padding argument in
Zend\Crypt\PublicKey\Rsa::encrypt() and decrypt() (though typically this
should only apply to the latter):
$decrypted = $rsa->decrypt($data, $key, $mode, OPENSSL_PKCS1_PADDING);
where $rsa is an instance of Zend\Crypt\PublicKey\Rsa.
(The $key and $mode argument defaults are null and
Zend\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