* lib/securerandom.rb (initialize): call the special method for Win32

before cheking `/dev/urandom` because we know windows doesn't have it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2014-11-08 20:01:24 +00:00
parent 6999a86600
commit dc79945a2b
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,8 @@
Sun Nov 9 05:00:23 2014 NAKAMURA Usaku <usa@ruby-lang.org>
* lib/securerandom.rb (initialize): call the special method for Win32
before cheking `/dev/urandom` because we know windows doesn't have it.
Sun Nov 9 04:01:46 2014 NAKAMURA Usaku <usa@ruby-lang.org>
* lib/securerandom.rb (SecureRandom::AdvApi32): split from `initialize`.

View File

@ -119,6 +119,10 @@ module SecureRandom
return OpenSSL::Random.random_bytes(n)
end
if defined?(AdvApi32)
return AdvApi32.gen_random(n)
end
if !defined?(@has_urandom) || @has_urandom
flags = File::RDONLY
flags |= File::NONBLOCK if defined? File::NONBLOCK
@ -140,10 +144,6 @@ module SecureRandom
end
end
if defined?(AdvApi32)
return AdvApi32.gen_random(n)
end
raise NotImplementedError, "No random device"
end