[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mcrypt/mcrypt.c trunk/ext/mcrypt/mcrypt.c

2010-06-08 Thread Pierre Joye
pajoye   Tue, 08 Jun 2010 18:27:23 +

Revision: http://svn.php.net/viewvc?view=revision&revision=300289

Log:
- use new function to get random bytes

Changed paths:
U   php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c
U   php/php-src/trunk/ext/mcrypt/mcrypt.c

Modified: php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c
===
--- php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c2010-06-08 18:26:03 UTC 
(rev 300288)
+++ php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c2010-06-08 18:27:23 UTC 
(rev 300289)
@@ -27,8 +27,7 @@
 #if HAVE_LIBMCRYPT

 #if PHP_WIN32
-# include 
-# include 
+# include "win32/winutil.h"
 #endif

 #include "php_mcrypt.h"
@@ -1391,23 +1390,14 @@

if (source == RANDOM || source == URANDOM) {
 #if PHP_WIN32
-   /* random/urandom equivalent on Windows */
-   HCRYPTPROV hCryptProv;
-   BYTE *iv_b = (BYTE *) iv;
-
-   /* It could be done using LoadLibrary but as we rely on 
2k+ for 5.3, cleaner to use a clear dependency (Advapi32) and a
-   standard API call (no f=getAddr..; f();) */
-   if(!CryptAcquireContext(&hCryptProv, NULL, NULL, 
PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
-   efree(iv);
-   php_error_docref(NULL TSRMLS_CC, E_ERROR, 
"Cannot open random device");
-   RETURN_FALSE;
-   }
-   if(!CryptGenRandom(hCryptProv, size,  iv_b)) {
-   efree(iv);
-   php_error_docref(NULL TSRMLS_CC, E_ERROR, 
"Could not gather sufficient random data");
-   RETURN_FALSE;
-   }
-   n = size;
+   /* random/urandom equivalent on Windows */
+   BYTE *iv_b = (BYTE *) iv;
+   if (php_win32_get_random_bytes(iv_b, (size_t) size) == FAILURE){
+   efree(iv);
+   php_error_docref(NULL TSRMLS_CC, E_ERROR, "Could not 
gather sufficient random data");
+   RETURN_FALSE;
+   }
+   n = size;
 #else
intfd;
size_t read_bytes = 0;

Modified: php/php-src/trunk/ext/mcrypt/mcrypt.c
===
--- php/php-src/trunk/ext/mcrypt/mcrypt.c   2010-06-08 18:26:03 UTC (rev 
300288)
+++ php/php-src/trunk/ext/mcrypt/mcrypt.c   2010-06-08 18:27:23 UTC (rev 
300289)
@@ -27,8 +27,7 @@
 #if HAVE_LIBMCRYPT

 #if PHP_WIN32
-# include 
-# include 
+# include "win32/winutil.h"
 #endif

 #include "php_mcrypt.h"
@@ -1391,23 +1390,14 @@

if (source == RANDOM || source == URANDOM) {
 #if PHP_WIN32
-   /* random/urandom equivalent on Windows */
-   HCRYPTPROV hCryptProv;
-   BYTE *iv_b = (BYTE *) iv;
-
-   /* It could be done using LoadLibrary but as we rely on 
2k+ for 5.3, cleaner to use a clear dependency (Advapi32) and a
-   standard API call (no f=getAddr..; f();) */
-   if(!CryptAcquireContext(&hCryptProv, NULL, NULL, 
PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
-   efree(iv);
-   php_error_docref(NULL TSRMLS_CC, E_ERROR, 
"Cannot open random device");
-   RETURN_FALSE;
-   }
-   if(!CryptGenRandom(hCryptProv, size,  iv_b)) {
-   efree(iv);
-   php_error_docref(NULL TSRMLS_CC, E_ERROR, 
"Could not gather sufficient random data");
-   RETURN_FALSE;
-   }
-   n = size;
+   /* random/urandom equivalent on Windows */
+   BYTE *iv_b = (BYTE *) iv;
+   if (php_win32_get_random_bytes(iv_b, (size_t) size) == FAILURE){
+   efree(iv);
+   php_error_docref(NULL TSRMLS_CC, E_ERROR, "Could not 
gather sufficient random data");
+   RETURN_FALSE;
+   }
+   n = size;
 #else
intfd;
size_t read_bytes = 0;

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

[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/ext/mcrypt/ mcrypt.c

2010-06-08 Thread Pierre Joye
pajoye   Tue, 08 Jun 2010 18:26:03 +

Revision: http://svn.php.net/viewvc?view=revision&revision=300288

Log:
- WS

Changed paths:
U   php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c

Modified: php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c
===
--- php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c2010-06-08 18:17:37 UTC 
(rev 300287)
+++ php/php-src/branches/PHP_5_3/ext/mcrypt/mcrypt.c2010-06-08 18:26:03 UTC 
(rev 300288)
@@ -420,16 +420,16 @@
 static PHP_MINIT_FUNCTION(mcrypt) /* {{{ */
 {
le_mcrypt = zend_register_list_destructors_ex(php_mcrypt_module_dtor, 
NULL, "mcrypt", module_number);
-
+
/* modes for mcrypt_??? routines */
REGISTER_LONG_CONSTANT("MCRYPT_ENCRYPT", 0, CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MCRYPT_DECRYPT", 1, CONST_PERSISTENT);
-
+
/* sources for mcrypt_create_iv */
REGISTER_LONG_CONSTANT("MCRYPT_DEV_RANDOM", 0, CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MCRYPT_DEV_URANDOM", 1, CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MCRYPT_RAND", 2, CONST_PERSISTENT);
-
+
/* ciphers */
MCRYPT_ENTRY2_2_4(3DES, "tripledes");
MCRYPT_ENTRY2_2_4(ARCFOUR_IV, "arcfour-iv");

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