summaryrefslogtreecommitdiffstats
path: root/Python/random.c
Commit message (Collapse)AuthorAgeFilesLines
* Issue #25558: Use compile-time asserts.Serhiy Storchaka2015-11-071-1/+1
|
* Merge 3.4 (os.urandom)Victor Stinner2015-10-011-0/+2
|\
| * Issue #25003: os.urandom() doesn't use getentropy() on Solaris becauseVictor Stinner2015-10-011-4/+8
| | | | | | | | | | getentropy() is blocking, whereas os.urandom() should not block. getentropy() is supported since Solaris 11.3.
* | Issue #25003: On Solaris 11.3 or newer, os.urandom() now uses the getrandom()Victor Stinner2015-10-011-15/+34
| | | | | | | | | | | | function instead of the getentropy() function. The getentropy() function is blocking to generate very good quality entropy, os.urandom() doesn't need such high-quality entropy.
* | py_getrandom(): getrandom() *can* return EINTRVictor Stinner2015-07-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See the latest version of getrandom() manual page: http://man7.org/linux/man-pages/man2/getrandom.2.html#NOTES The behavior when a call to getrandom() that is blocked while reading from /dev/urandom is interrupted by a signal handler depends on the initialization state of the entropy buffer and on the request size, buflen. If the entropy is not yet initialized, then the call will fail with the EINTR error. If the entropy pool has been initialized and the request size is large (buflen > 256), the call either succeeds, returning a partially filled buffer, or fails with the error EINTR. If the entropy pool has been initialized and the request size is small (buflen <= 256), then getrandom() will not fail with EINTR. Instead, it will return all of the bytes that have been requested. Note: py_getrandom() calls getrandom() with flags=0.
* | (Merge 3.4) Issue #22585: os.urandom() now releases the GIL when theVictor Stinner2015-03-301-6/+14
|\ \ | |/ | | | | getentropy() is used (OpenBSD 5.6+).
| * Issue #22585: os.urandom() now releases the GIL when the getentropy() is usedVictor Stinner2015-03-301-6/+14
| | | | | | | | (OpenBSD 5.6+).
| * Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),Victor Stinner2014-12-211-7/+41
| | | | | | | | instead of reading /dev/urandom, to get pseudo-random bytes.
* | Issue #22181: os.urandom() now releases the GIL when the getrandom()Victor Stinner2015-03-301-2/+11
| | | | | | | | implementation is used.
* | Issue #23752: _Py_fstat() is now responsible to raise the Python exceptionVictor Stinner2015-03-301-2/+1
| | | | | | | | Add _Py_fstat_noraise() function when a Python exception is not welcome.
* | Issue #23707: On UNIX, os.urandom() now calls the Python signal handler whenVictor Stinner2015-03-191-19/+11
| | | | | | | | | | | | | | read() is interrupted by a signal. dev_urandom_python() now calls _Py_read() helper instead of calling directly read().
* | Issue #22181: Fix dev_urandom_noraise(), try calling py_getrandom() beforeVictor Stinner2015-03-191-4/+4
| | | | | | | | opening /dev/urandom.
* | Issue #22181: The availability of the getrandom() is now checked in configure,Victor Stinner2015-03-191-8/+5
| | | | | | | | | | | | and stored in pyconfig.h as the new HAVE_GETRANDOM_SYSCALL define. Fix os.urandom() tests using file descriptors if os.urandom() uses getrandom().
* | Issue #22181: On Linux, os.urandom() now uses the new getrandom() syscall ifVictor Stinner2015-03-181-6/+84
| | | | | | | | | | | | available, syscall introduced in the Linux kernel 3.17. It is more reliable and more secure, because it avoids the need of a file descriptor and waits until the kernel has enough entropy.
* | Issue #23694: Enhance _Py_open(), it now raises exceptionsVictor Stinner2015-03-171-7/+3
| | | | | | | | | | | | | | | | * _Py_open() now raises exceptions on error. If open() fails, it raises an OSError with the filename. * _Py_open() now releases the GIL while calling open() * Add _Py_open_noraise() when _Py_open() cannot be used because the GIL is not held
* | Issue #23152: Implement _Py_fstat() to support files larger than 2 GB on ↵Steve Dower2015-02-211-3/+3
| | | | | | | | | | | | Windows. fstat() may fail with EOVERFLOW on files larger than 2 GB because the file size type is an signed 32-bit integer.
* | Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),Victor Stinner2014-12-211-4/+35
| | | | | | | | instead of reading /dev/urandom, to get pseudo-random bytes.
* | Removed duplicated words in in comments and docs.Serhiy Storchaka2014-12-011-1/+1
|\ \ | |/
| * Removed duplicated words in in comments and docs.Serhiy Storchaka2014-12-011-1/+1
| |
* | Issue21393 Use CryptReleaseContext to release Crypt handle on WindowsTim Golden2014-05-061-1/+1
| |
* | Issue #21393: random.c: on Windows, close the hCryptProv handle at exitVictor Stinner2014-05-021-3/+6
|/
* Issue #21207: Detect when the os.urandom cached fd has been closed or ↵Antoine Pitrou2014-04-261-10/+39
| | | | replaced, and open it anew.
* Issue #16136: Remove VMS support and VMS-related codeChristian Heimes2013-12-211-33/+4
|
* ssue #19183: Implement PEP 456 'secure and interchangeable hash algorithm'.Christian Heimes2013-11-201-6/+7
| | | | Python now uses SipHash24 on all major platforms.
* Fix compiler warning in win32_urandom(): explicit cast to DWORD inVictor Stinner2013-11-151-1/+1
| | | | CryptGenRandom()
* merge with 3.3Georg Brandl2013-10-061-2/+3
|\
| * Closes #15213: update comment for _PyOS_URandomGeorg Brandl2013-10-061-2/+3
| |
* | Issue #18756: os.urandom() now uses a lazily-opened persistent file ↵Antoine Pitrou2013-08-301-13/+42
| | | | | | | | descriptor, so as to avoid using many file descriptors when run in parallel from multiple threads.
* | Issue #18571: Implementation of the PEP 446: file descriptors and file handlesVictor Stinner2013-08-271-2/+2
| | | | | | | | | | are now created non-inheritable; add functions os.get/set_inheritable(), os.get/set_handle_inheritable() and socket.socket.get/set_inheritable().
* | Issue #18756: Improve error reporting in os.urandom() when the failure is ↵Antoine Pitrou2013-08-161-2/+6
|\ \ | |/ | | | | due to something else than /dev/urandom not existing.
| * Issue #18756: Improve error reporting in os.urandom() when the failure is ↵Antoine Pitrou2013-08-161-2/+6
| | | | | | | | due to something else than /dev/urandom not existing.
* | Drop support for Windows 2000; allow any XP API (but not Vista+).Martin v. Löwis2013-01-251-30/+3
|/ | | | | 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.
* Issue #15340: Fix importing the random module when /dev/urandom cannot be ↵Antoine Pitrou2012-09-071-1/+2
| | | | | | opened. This was a regression caused by the hash randomization patch.
* enable hash randomization by defaultBenjamin Peterson2012-02-211-11/+0
|
* ensure no one tries to hash things before the random seed is foundBenjamin Peterson2012-02-211-4/+8
|
* Fix typo in conditional.Georg Brandl2012-02-201-1/+1
|
* Issue #13703: add a way to randomize the hash values of basic types (str, ↵Georg Brandl2012-02-201-0/+302
bytes, datetime) in order to make algorithmic complexity attacks on (e.g.) web apps much more complicated. The environment variable PYTHONHASHSEED and the new command line flag -R control this behavior.