mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									6951fea3ab
								
							
						
					
					
						commit
						3f50bf652b
					
				
					 6 changed files with 16 additions and 51 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue