diff --git a/lib/modules/Crypto/randomness.pmod b/lib/modules/Crypto/randomness.pmod index 03054e6e1cbea8d8e1b769b529a203877a91ad17..2c6e9435c52c5d0e03b2045c1d63293150100b2a 100644 --- a/lib/modules/Crypto/randomness.pmod +++ b/lib/modules/Crypto/randomness.pmod @@ -70,10 +70,8 @@ PRIVATE string some_entropy() class pike_random { string read(int len) { - return sprintf("%@c", Array.map(allocate(len), lambda(int dummy) - { - return random(256); - } )); + if (len > 16384) return read(len/2)+read(len-len/2); + return (string)allocate(len, random)(256); } }