On Wed, 30 Oct 2019, 18:32 Jakub Zelenka, <bu...@php.net> wrote:

>
>
> On Mon, 23 Sep 2019, 14:02 Nikita Popov, <nikita....@gmail.com> wrote:
>
>> On Mon, Sep 23, 2019 at 2:52 PM Christian Schneider <
>> cschn...@cschneid.com>
>> wrote:
>>
>> > Hi,
>> > I just noted (too late in the process, I know) that
>> > openssl_random_pseudo_bytes(0) now throws an exception.
>> >
>> > This breaks code like
>> >         $ivsize = openssl_cipher_iv_length($method);
>> >         $iv = openssl_random_pseudo_bytes($ivsize);
>> >         $data = openssl_encrypt($string, $method, $key,
>> OPENSSL_RAW_DATA,
>> > $iv);
>> > if $method is 'aes-256-ecb' because $ivsize is 0.
>> >
>> > I do realize that ECB mode ciphers are deprecated but having them throw
>> an
>> > exception indirectly via openssl_random_pseudo_bytes() seems a bit
>> strange,
>> > even in the context of security.
>> >
>> > I checked the RFC
>> > https://wiki.php.net/rfc/improve-openssl-random-pseudo-bytes and it
>> > doesn't mention this BC break:
>> > "False-checks on the return value of openssl_random_pseudo_bytes() will
>> do
>> > nothing since the function fails closed. Usage of $crypto_strongwill
>> > generate errors."
>> >
>> > While I would have preferred the exception to be thrown only when
>> $ivsize
>> > is not an integer or less than 0 but I guess this cannot be changed at
>> the
>> > RC stage.
>> >
>> > I would recommend though that we aim to keep BC breaks to what's
>> mentioned
>> > in RFCs.
>> >
>>
>> This was noted during the PR review in:
>> https://github.com/php/php-src/pull/3649#discussion_r230598754 Especially
>> in conjunction with your example, I think we should revert this part an
>> make openssl_random_pseudo_bytes(0) return "" without exception or
>> warning.
>> Ideally we'd adjust random_bytes() to do the same.
>>
>
> I agree this should be reverted for 7.4 at least as it's a BC and wasn't
> really in RFC. It really doesn't matter if it's a good thing or not as it's
> a BC that we shouldn't do in minor release.
>

I mean BC break ofc... :)

>

Reply via email to