diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-18 00:07:07 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-18 00:07:07 +0000 |
| commit | 9b63cf3ea0a6cbcaac79cab2c5c5cbdd97a3d84b (patch) | |
| tree | 271786db12747eec021cf7c26961a22c5e627f8f | |
| parent | 036158baa2b077916917584ebf5d29adecc97f5f (diff) | |
| download | ruby-9b63cf3ea0a6cbcaac79cab2c5c5cbdd97a3d84b.tar.gz ruby-9b63cf3ea0a6cbcaac79cab2c5c5cbdd97a3d84b.tar.xz ruby-9b63cf3ea0a6cbcaac79cab2c5c5cbdd97a3d84b.zip | |
* random.c (fill_random_seed): use cryptographic service on Windows.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | random.c | 7 |
2 files changed, 11 insertions, 0 deletions
@@ -1,3 +1,7 @@ +Sat Jul 18 09:07:00 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * random.c (fill_random_seed): use cryptographic service on Windows. + Sat Jul 18 07:56:00 2009 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> * ext/tk/lib/tk.rb: fail to create a widget object for an unknown @@ -389,6 +389,8 @@ fill_random_seed(unsigned int seed[DEFAULT_SEED_CNT]) #if USE_DEV_URANDOM int fd; struct stat statbuf; +#elif defined(_WIN32) + HCRYPTPROV prov; #endif memset(seed, 0, DEFAULT_SEED_LEN); @@ -410,6 +412,11 @@ fill_random_seed(unsigned int seed[DEFAULT_SEED_CNT]) } close(fd); } +#elif defined(_WIN32) + if (CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { + CryptGenRandom(prov, DEFAULT_SEED_LEN, seed); + CryptReleaseContext(prov, 0); + } #endif gettimeofday(&tv, 0); |
