Bug #51636 [Fbk->Csd]: openssl_random_pseudo_bytes() painfully slow

From: Date: Tue, 14 Jun 2011 16:23:08 +0000
Subject: Bug #51636 [Fbk->Csd]: openssl_random_pseudo_bytes() painfully slow
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-161393@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=51636&edit=1

 ID:                 51636
 Updated by:         pajoye@php.net
 Reported by:        kaisellgren at gmail dot com
 Summary:            openssl_random_pseudo_bytes() painfully slow
-Status:             Feedback
+Status:             Closed
 Type:               Bug
 Package:            OpenSSL related
 Operating System:   Windows
 PHP Version:        5.3.2
 Assigned To:        pajoye
 Block user comment: N
 Private report:     N

 New Comment:

It is not related to this bug.

This bug was due to a wrong implementation, which was using RAND_Screen.

The "delay" here is not one per se and is relatively constant. Please open a new 
one for performance issue, there may have some ways to do not call the crypto 
API everytime but to store a minimum amount of bytes per request (random size).

Move back to close.


Previous Comments:
------------------------------------------------------------------------
[2011-06-14 17:55:14] scottmac@php.net

It's a by reference parameter, not an option parameter.

I don't see the delay here on Win7 x64 with 5.3-dev

------------------------------------------------------------------------
[2011-06-14 17:40:49] seld@php.net

On 5.3.6, Win7 x64, and it seems on other windows versions as well, the call to
openssl_random_pseudo_bytes() still takes one second. Since apparently doing non-crypto-safe output
is not possible on windows, it would be great to at least work on the delay for crypto-safe output.

------------------------------------------------------------------------
[2011-06-14 11:18:05] pajoye@php.net

Windows version?

------------------------------------------------------------------------
[2011-06-14 10:22:18] seld@php.net

The changelog says this has been fixed in 5.3.4, but the function still takes 1second to return on
my machine (5.3.6). Note that the amount of bytes doesn't matter, and it's always around
1second.

$t = microtime(true);
openssl_random_pseudo_bytes(1, $strong);
var_dump(microtime(true) - $t, $strong);

Outputs:
float 1.0317049026489
boolean true

------------------------------------------------------------------------
[2010-04-23 10:47:16] pajoye@php.net

Under CLI or inside a web server?

Can you try under CLI please?

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=51636


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51636&edit=1


Thread (8 messages)

« previous php.bugs (#161393) next »