Re: Stricter error handling in mcrypt extension

From: Date: Sun, 02 Mar 2014 09:42:12 +0000
Subject: Re: Stricter error handling in mcrypt extension
References: 1  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
2014.03.02. 1:13, "Nikita Popov" <[email protected]> ezt írta:
>
> Hi internals!
>
> I would like to add a number of additional error checks in
> php_mcrypt_do_crypt - which affects the mcrypt_encrypt, mcrypt_decrypt and
> mcrypt_{BLOCK_CHAINING_MODE} userland functions.
>
> The proposed changes are:
>  * Throw a warning and return bool(false) if the IV size is invalid. The
> old behavior was to throw a warning and use a NUL-byte IV.
>  * Throw a warning and return bool(false) if no IV was specified, but the
> block chaining mode requires an IV. The old behavior was to throw a
warning
> and use a NUL-byte IV.
>  * Throw a warning and return bool(false) if the key size is invalid. The
> old behavior was to **silently** pad the string to the next valid key size
> with NUL bytes or, if the key is too long, to throw a warning and truncate
> it to the maximum valid key size.
>
> An implementation of these changes can be found in the PR
> https://github.com/php/php-src/pull/610.
>
> The reason why I'd like to make the mcrypt input handling stricter is to
> ensure that incorrectly implemented encryption will fail and fail
> violently. With the current lax input checking it is very easy to
> completely compromise confidentiality through simple mistakes - like using
> a password as the encryption key.
>
> Thanks,
> Nikita
>
> PS: I'm running this change by the list because stricter error handling is
> technically a BC break. Of course this change is targeting PHP 5.6 only.

Hi Nikita,

While I think that the overwhelming majority of the voters would support
this change, so an rfc could seem as an overkill, but I still think that it
is better to require an rfc for every BC break.

Which unfortunately would mean that this can't target 5.6.0.
:(


Thread (14 messages)

« previous php.internals (#72896) next »