From bec3b4865ecc540e332c806fe03190867d85b5b3 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Tue, 11 Feb 2014 03:40:14 +0000 Subject: Using the helper API for random number generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201125 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/Path.cpp | 1 + lib/Support/Unix/Path.inc | 1 - lib/Support/Windows/Path.inc | 14 +------------- 3 files changed, 2 insertions(+), 14 deletions(-) (limited to 'lib/Support') diff --git a/lib/Support/Path.cpp b/lib/Support/Path.cpp index c2b3f1863e..1872af55ed 100644 --- a/lib/Support/Path.cpp +++ b/lib/Support/Path.cpp @@ -15,6 +15,7 @@ #include "llvm/Support/Endian.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/Process.h" #include #include #include diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc index d0b63b5ba5..cda976fdee 100644 --- a/lib/Support/Unix/Path.inc +++ b/lib/Support/Unix/Path.inc @@ -17,7 +17,6 @@ //===----------------------------------------------------------------------===// #include "Unix.h" -#include "llvm/Support/Process.h" #include #include #if HAVE_SYS_STAT_H diff --git a/lib/Support/Windows/Path.inc b/lib/Support/Windows/Path.inc index 5a41e49e25..a431fa0480 100644 --- a/lib/Support/Windows/Path.inc +++ b/lib/Support/Windows/Path.inc @@ -112,25 +112,13 @@ static error_code createUniqueEntity(const Twine &model, int &result_fd, // needed if the randomly chosen path already exists. SmallVector random_path_utf16; - // Get a Crypto Provider for CryptGenRandom. - HCRYPTPROV HCPC; - if (!::CryptAcquireContextW(&HCPC, - NULL, - NULL, - PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT)) - return windows_error(::GetLastError()); - ScopedCryptContext CryptoProvider(HCPC); - retry_random_path: random_path_utf16.set_size(0); for (SmallVectorImpl::const_iterator i = model_utf16.begin(), e = model_utf16.end(); i != e; ++i) { if (*i == L'%') { - BYTE val = 0; - if (!::CryptGenRandom(CryptoProvider, 1, &val)) - return windows_error(::GetLastError()); + unsigned val = sys::Process::GetRandomNumber(); random_path_utf16.push_back(L"0123456789abcdef"[val & 15]); } else -- cgit v1.2.3