Enrico:

Thank you very much for this, it all makes sense now.

Cheers,

Er Galvão Abbott

>
> Hi Galvao,
>
> the output of Zend\Crypt\Symmetric\Mcrypt::encrypt is $iv . $encrypted
> where $iv is the $config['crypto']['vector'] and $encrypted is the
> $crypt of your example code.
> Moreover, Zend\Crypt\Symmetric\Mcrypt execute the padding of the
> plaintext before the encryption, see
> here: 
> https://github.com/zendframework/zf2/blob/master/library/Zend/Crypt/Symmetric/Mcrypt.php#L342
> that is by default the PKCS7 padding (RFC 5652) that is basically
> contact the missing bytes of the last block with the different size
> (https://github.com/zendframework/zf2/blob/master/library/Zend/Crypt/Symmetric/Padding/Pkcs7.php#L26).
>
> So if you need to compare the Mcrypt encryption output with the
> Zend\Crypt\Symmetric\Mcrypt::encrypt you should consider these
> differences.
>
> Anyway, I strongly suggest to use Zend\Crypt\BlockCipher, instead of
> Zend\Crypt\Symmetric\Mcrypt, because it supports the authentication of
> the result, by default. The authentication part is missing with
> Mcrypt. From a security point of view, if you need to protect
> sensitive data you should always use encryption + authentication, the
> encryption alone is not enough (for instance, see the Padding Oracle
> Attack).
>
> Regards,
> Enrico
>
>
>
> On Mon, Feb 3, 2014 at 4:42 AM, Er Galvao Abbott <gal...@galvao.eti.br
> <mailto:gal...@galvao.eti.br>> wrote:
>
>     Greetings.
>
>     I'm having some issues understanding Zend\Crypt.
>     What I'd like is the exact same result when using PHP's mcrypt
>     extension, what I'm receiving is exact same length strings (64
>     characters using only Zend\Crypt\Symmetric\Mcrypt, 172 characters
>     using
>     Zend\Crypt\BlockCipher along with Zend\Crypt\Symmetric\Mcrypt).
>
>     When I use PHP's mcrypt with the same configuration I get the first
>     encryption with 28 characters and the second one with 4 characters. On
>     both cases (using ZF2 and using mcrypt) I run the encryption through
>     base64_encode to get the final result.
>
>     Please ignore the fact that I'm using the same key for
>     Zend\Crypt\BlockCipher and Zend\Crypt\Symmetric\Mcrypt, since it's not
>     the issue (I use it only once when not using BlockCipher and yet
>     get the
>     "same problematic result").
>
>     //Begin code:
>
>     //Using ZF2:
>
>     $mcrypt  = new Zend\Crypt\Symmetric\Mcrypt();
>     $mcrypt->setAlgorithm($config['crypto']['algorithm']);
>     $mcrypt->setKey($config['crypto']['key']);
>     $mcrypt->setMode($config['crypto']['mode']);
>     $mcrypt->setSalt($config['crypto']['vector']);
>
>     $adapter = new Zend\Crypt\BlockCipher($mcrypt);
>     $adapter->setKey($config['crypto']['key']);
>
>     //Using PHP's Mcrypt:
>
>      $crypt = mcrypt_encrypt($config['crypto']['algorithm'],
>     $config['crypto']['key'], $data, $config['crypto']['mode'],
>     $config['crypto']['vector']);
>
>     // End code
>
>
>     What am I missing?
>
>     --
>     Er Galvão Abbott
>
>     --
>     List: fw-general@lists.zend.com <mailto:fw-general@lists.zend.com>
>     Info: http://framework.zend.com/archives
>     Unsubscribe: fw-general-unsubscr...@lists.zend.com
>     <mailto:fw-general-unsubscr...@lists.zend.com>
>
>
>
>
>
> -- 
> Enrico Zimuel
> Senior PHP Engineer     | enr...@zend.com <mailto:enr...@zend.com>
> Zend Framework Team     | http://framework.zend.com
> Zend Technologies Ltd.
> http://www.zend.com


-- 
List: fw-general@lists.zend.com
Info: http://framework.zend.com/archives
Unsubscribe: fw-general-unsubscr...@lists.zend.com


Reply via email to