felipe          Sun Sep  7 23:00:31 2008 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/mcrypt/tests   bug46010.phpt 

  Modified files:              
    /php-src/ext/mcrypt mcrypt.c 
    /php-src/ext/mcrypt/tests   mcrypt_ecb.phpt 
  Log:
  - MFH: Fixed bug #46010 (warnings incorrectly generated for iv in ecb mode)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mcrypt/mcrypt.c?r1=1.91.2.3.2.12&r2=1.91.2.3.2.13&diff_format=u
Index: php-src/ext/mcrypt/mcrypt.c
diff -u php-src/ext/mcrypt/mcrypt.c:1.91.2.3.2.12 
php-src/ext/mcrypt/mcrypt.c:1.91.2.3.2.13
--- php-src/ext/mcrypt/mcrypt.c:1.91.2.3.2.12   Mon Dec 31 07:20:08 2007
+++ php-src/ext/mcrypt/mcrypt.c Sun Sep  7 23:00:31 2008
@@ -16,7 +16,7 @@
    |          Derick Rethans <[EMAIL PROTECTED]>                    |
    +----------------------------------------------------------------------+
  */
-/* $Id: mcrypt.c,v 1.91.2.3.2.12 2007/12/31 07:20:08 sebastian Exp $ */
+/* $Id: mcrypt.c,v 1.91.2.3.2.13 2008/09/07 23:00:31 felipe Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1041,15 +1041,17 @@
        /* Check IV */
        iv_s = NULL;
        iv_size = mcrypt_enc_get_iv_size (td);
-       if (argc == 5) {
-               if (iv_size != Z_STRLEN_PP(iv)) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, 
MCRYPT_IV_WRONG_SIZE);
-               } else {
-                       iv_s = emalloc(iv_size + 1);
-                       memcpy(iv_s, Z_STRVAL_PP(iv), iv_size);
-               }
-       } else if (argc == 4) {
-               if (iv_size != 0) {
+       
+       /* IV is required */
+       if (mcrypt_enc_mode_has_iv(td) == 1) {
+               if (argc == 5) {
+                       if (iv_size != Z_STRLEN_PP(iv)) {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, 
MCRYPT_IV_WRONG_SIZE);
+                       } else {
+                               iv_s = emalloc(iv_size + 1);
+                               memcpy(iv_s, Z_STRVAL_PP(iv), iv_size);
+                       }
+               } else if (argc == 4) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attempt to 
use an empty IV, which is NOT recommend");
                        iv_s = emalloc(iv_size + 1);
                        memset(iv_s, 0, iv_size + 1);
http://cvs.php.net/viewvc.cgi/php-src/ext/mcrypt/tests/mcrypt_ecb.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/mcrypt/tests/mcrypt_ecb.phpt
diff -u php-src/ext/mcrypt/tests/mcrypt_ecb.phpt:1.1.4.2 
php-src/ext/mcrypt/tests/mcrypt_ecb.phpt:1.1.4.3
--- php-src/ext/mcrypt/tests/mcrypt_ecb.phpt:1.1.4.2    Sat May 17 23:31:31 2008
+++ php-src/ext/mcrypt/tests/mcrypt_ecb.phpt    Sun Sep  7 23:00:31 2008
@@ -14,10 +14,10 @@
 // we have to trim as AES rounds the blocks and decrypt doesnt detect that
 echo trim(mcrypt_ecb($cipher, $key, $enc_data, MCRYPT_DECRYPT, $iv)) . "\n";
 
-// a warning must be issued if we don't use a IV on a AES cipher, that usually 
requires an IV
+// a warning not must be issued if we don't use a IV on a AES cipher, that not 
requires an IV
 mcrypt_ecb($cipher, $key, $enc_data, MCRYPT_DECRYPT);
 
 --EXPECTF--
 PHP Testfest 2008
 
-Warning: mcrypt_ecb(): Attempt to use an empty IV, which is NOT recommend in 
%s on line %d
+

http://cvs.php.net/viewvc.cgi/php-src/ext/mcrypt/tests/bug46010.phpt?view=markup&rev=1.1
Index: php-src/ext/mcrypt/tests/bug46010.phpt
+++ php-src/ext/mcrypt/tests/bug46010.phpt
--TEST---
Bug #46010 (warnings incorrectly generated for iv in ecb mode)
--FILE--
<?php

var_dump(bin2hex(mcrypt_encrypt(MCRYPT_TRIPLEDES, "key", "data", 
MCRYPT_MODE_ECB)));
var_dump(bin2hex(mcrypt_encrypt(MCRYPT_TRIPLEDES, "key", "data", 
MCRYPT_MODE_ECB, "a")));
var_dump(bin2hex(mcrypt_encrypt(MCRYPT_TRIPLEDES, "key", "data", 
MCRYPT_MODE_ECB, "12345678")));

?>
--EXPECTF--
string(16) "372eeb4a524b8d31"
string(16) "372eeb4a524b8d31"
string(16) "372eeb4a524b8d31"



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to