]> granicus.if.org Git - php/commitdiff
Use zpp for accepting encryption mode string
authorNikita Popov <nikic@php.net>
Wed, 5 Mar 2014 14:18:27 +0000 (15:18 +0100)
committerNikita Popov <nikic@php.net>
Wed, 5 Mar 2014 14:32:32 +0000 (15:32 +0100)
Leaving the non-zpp usage for the mcrypt_{MODE} functions, as
they're deprecated and I'm too lazy to update all their tests.

ext/mcrypt/mcrypt.c
ext/mcrypt/tests/mcrypt_decrypt_variation4.phpt
ext/mcrypt/tests/mcrypt_encrypt_variation4.phpt

index ada3fb71436c5f73f70d7dc0cfb2e5a84a8e7aed..70a458d9767196ddc5a1ac8e4a260b8c1eb42b06 100644 (file)
@@ -1296,15 +1296,15 @@ static void php_mcrypt_do_crypt(char* cipher, const char *key, int key_len, cons
    OFB crypt/decrypt data using key key with cipher cipher starting with iv */
 PHP_FUNCTION(mcrypt_encrypt)
 {
-       zval **mode;
-       char *cipher, *key, *data, *iv = NULL;
-       int cipher_len, key_len, data_len, iv_len = 0;
+       char *cipher, *key, *data, *mode, *iv = NULL;
+       int cipher_len, key_len, data_len, mode_len, iv_len = 0;
        
-       MCRYPT_GET_CRYPT_ARGS
-       
-       convert_to_string_ex(mode);
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss|s", &cipher, &cipher_len,
+               &key, &key_len, &data, &data_len, &mode, &mode_len, &iv, &iv_len) == FAILURE) {
+               return;
+       }
 
-       php_mcrypt_do_crypt(cipher, key, key_len, data, data_len, Z_STRVAL_PP(mode), iv, iv_len, MCRYPT_ENCRYPT, return_value TSRMLS_CC);
+       php_mcrypt_do_crypt(cipher, key, key_len, data, data_len, mode, iv, iv_len, MCRYPT_ENCRYPT, return_value TSRMLS_CC);
 }
 /* }}} */
 
@@ -1312,15 +1312,15 @@ PHP_FUNCTION(mcrypt_encrypt)
    OFB crypt/decrypt data using key key with cipher cipher starting with iv */
 PHP_FUNCTION(mcrypt_decrypt)
 {
-       zval **mode;
-       char *cipher, *key, *data, *iv = NULL;
-       int cipher_len, key_len, data_len, iv_len = 0;
+       char *cipher, *key, *data, *mode, *iv = NULL;
+       int cipher_len, key_len, data_len, mode_len, iv_len = 0;
 
-       MCRYPT_GET_CRYPT_ARGS
-       
-       convert_to_string_ex(mode);
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss|s", &cipher, &cipher_len,
+               &key, &key_len, &data, &data_len, &mode, &mode_len, &iv, &iv_len) == FAILURE) {
+               return;
+       }
 
-       php_mcrypt_do_crypt(cipher, key, key_len, data, data_len, Z_STRVAL_PP(mode), iv, iv_len, MCRYPT_DECRYPT, return_value TSRMLS_CC);
+       php_mcrypt_do_crypt(cipher, key, key_len, data, data_len, mode, iv, iv_len, MCRYPT_DECRYPT, return_value TSRMLS_CC);
 }
 /* }}} */
 
index 12e44312d839908510f412179effcd538f9a5472..1bb994dcc790ed1f5357830e1f0406d7747dd68d 100644 (file)
@@ -160,24 +160,20 @@ Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
 bool(false)
 
 --empty array--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_decrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --int indexed array--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_decrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --associative array--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_decrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --nested arrays--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_decrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --uppercase NULL--
 Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
@@ -216,10 +212,8 @@ Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
 bool(false)
 
 --instance of classWithoutToString--
-Error: 4096 - Object of class classWithoutToString could not be converted to string, %s(%d)
-Error: 8 - Object of class classWithoutToString to string conversion, %s(%d)
-Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_decrypt() expects parameter 4 to be string, object given, %s(%d)
+NULL
 
 --undefined var--
 Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
@@ -230,6 +224,6 @@ Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
 bool(false)
 
 --resource--
-Error: 2 - mcrypt_decrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_decrypt() expects parameter 4 to be string, resource given, %s(%d)
+NULL
 ===DONE===
index 4c8cef1db3c5e83b755b8507bb73dfa274fe5d87..a041ab437e3a5160596d6a4d2a84c5a71e1816d8 100644 (file)
@@ -160,24 +160,20 @@ Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
 bool(false)
 
 --empty array--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_encrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --int indexed array--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_encrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --associative array--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_encrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --nested arrays--
-Error: 8 - Array to string conversion, %s(%d)
-Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_encrypt() expects parameter 4 to be string, array given, %s(%d)
+NULL
 
 --uppercase NULL--
 Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
@@ -216,10 +212,8 @@ Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
 bool(false)
 
 --instance of classWithoutToString--
-Error: 4096 - Object of class classWithoutToString could not be converted to string, %s(%d)
-Error: 8 - Object of class classWithoutToString to string conversion, %s(%d)
-Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_encrypt() expects parameter 4 to be string, object given, %s(%d)
+NULL
 
 --undefined var--
 Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
@@ -230,6 +224,6 @@ Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
 bool(false)
 
 --resource--
-Error: 2 - mcrypt_encrypt(): Module initialization failed, %s(%d)
-bool(false)
+Error: 2 - mcrypt_encrypt() expects parameter 4 to be string, resource given, %s(%d)
+NULL
 ===DONE===