# File lib/openid/util.rb, line 143 def Util.rand(max) unless Util::HAS_URANDOM return Kernel::rand(max) end start = 0 stop = max step = 1 r = ((stop-start)/step).to_i # figure out how many bytes we need rbytes = Util::numToStr(r) nbytes = rbytes.length nbytes -= 1 if rbytes[0].chr == "\000" bytes = "\000" + Util::_getBytes(nbytes) n = Util::strToNum(bytes) return start + (n % r) * step end