summaryrefslogtreecommitdiffstats
path: root/Python/random.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2013-01-25 13:06:18 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2013-01-25 13:06:18 (GMT)
commit3f50bf652bae5e3371972eb261973238c62cc17b (patch)
tree09cd30b06c22e1222af8764c1defee6cde3eca9c /Python/random.c
parent6951fea3abb64a3820d623efce182fefdcbae978 (diff)
downloadcpython-3f50bf652bae5e3371972eb261973238c62cc17b.zip
cpython-3f50bf652bae5e3371972eb261973238c62cc17b.tar.gz
cpython-3f50bf652bae5e3371972eb261973238c62cc17b.tar.bz2
Drop support for Windows 2000; allow any XP API (but not Vista+).
Drop SDK version configuration for Tk compilation, to not bind it to W2k anymore. Binding it to XP would conflict with Tk's own binding of tkMenu to W2k.
Diffstat (limited to 'Python/random.c')
-rw-r--r--Python/random.c33
1 files changed, 3 insertions, 30 deletions
diff --git a/Python/random.c b/Python/random.c
index 53518c2..1ad4c3d 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -12,13 +12,6 @@ static int _Py_HashSecret_Initialized = 0;
#endif
#ifdef MS_WINDOWS
-typedef BOOL (WINAPI *CRYPTACQUIRECONTEXTA)(HCRYPTPROV *phProv,\
- LPCSTR pszContainer, LPCSTR pszProvider, DWORD dwProvType,\
- DWORD dwFlags );
-typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV hProv, DWORD dwLen,\
- BYTE *pbBuffer );
-
-static CRYPTGENRANDOM pCryptGenRandom = NULL;
/* This handle is never explicitly released. Instead, the operating
system will release it when the process terminates. */
static HCRYPTPROV hCryptProv = 0;
@@ -26,29 +19,9 @@ static HCRYPTPROV hCryptProv = 0;
static int
win32_urandom_init(int raise)
{
- HINSTANCE hAdvAPI32 = NULL;
- CRYPTACQUIRECONTEXTA pCryptAcquireContext = NULL;
-
- /* Obtain handle to the DLL containing CryptoAPI. This should not fail. */
- hAdvAPI32 = GetModuleHandle("advapi32.dll");
- if(hAdvAPI32 == NULL)
- goto error;
-
- /* Obtain pointers to the CryptoAPI functions. This will fail on some early
- versions of Win95. */
- pCryptAcquireContext = (CRYPTACQUIRECONTEXTA)GetProcAddress(
- hAdvAPI32, "CryptAcquireContextA");
- if (pCryptAcquireContext == NULL)
- goto error;
-
- pCryptGenRandom = (CRYPTGENRANDOM)GetProcAddress(hAdvAPI32,
- "CryptGenRandom");
- if (pCryptGenRandom == NULL)
- goto error;
-
/* Acquire context */
- if (! pCryptAcquireContext(&hCryptProv, NULL, NULL,
- PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
+ if (!CryptAcquireContext(&hCryptProv, NULL, NULL,
+ PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
goto error;
return 0;
@@ -77,7 +50,7 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
while (size > 0)
{
chunk = size > INT_MAX ? INT_MAX : size;
- if (!pCryptGenRandom(hCryptProv, chunk, buffer))
+ if (!CryptGenRandom(hCryptProv, chunk, buffer))
{
/* CryptGenRandom() failed */
if (raise)