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