diff --git a/lib/modules/Crypto/randomness.pmod b/lib/modules/Crypto/randomness.pmod index 7a6f3e7a71e472022371ce62457e0742f4db8464..06baaaa5dcf023e9cea925757d15951426f6adbd 100644 --- a/lib/modules/Crypto/randomness.pmod +++ b/lib/modules/Crypto/randomness.pmod @@ -1,4 +1,4 @@ -/* $Id: randomness.pmod,v 1.11 1999/08/25 17:32:54 grubba Exp $ +/* $Id: randomness.pmod,v 1.12 1999/09/13 22:19:15 hubbe Exp $ */ //! module Crypto @@ -82,8 +82,19 @@ class pike_random { //! Returns a string of length len with pseudo random values. string read(int len) { +#if 1 // 30% optimization /Hubbe + string ret=""; + if(len>=16384) + { + array x=allocate(16384,random); + for(int e=0;e<(len/16384);e++) ret+=(string)x(256); + } + ret+=(string)allocate(len % 16384, random)(256); + return ret; +#else if (len > 16384) return read(len/2)+read(len-len/2); return (string)allocate(len, random)(256); +#endif } }