cpython/Lib
Victor Stinner 231b404cb0 Issue #22560: New SSL implementation based on ssl.MemoryBIO
The new SSL implementation is based on the new ssl.MemoryBIO which is only
available on Python 3.5. On Python 3.4 and older, the legacy SSL implementation
(using SSL_write, SSL_read, etc.) is used. The proactor event loop only
supports the new implementation.

The new asyncio.sslproto module adds _SSLPipe, SSLProtocol and
_SSLProtocolTransport classes. _SSLPipe allows to "wrap" or "unwrap" a socket
(switch between cleartext and SSL/TLS).

Patch written by Antoine Pitrou. sslproto.py is based on gruvi/ssl.py of the
gruvi project written by Geert Jansen.

This change adds SSL support to ProactorEventLoop on Python 3.5 and newer!

It becomes also possible to implement STARTTTLS: switch a cleartext socket to
SSL.
2015-01-14 00:19:09 +01:00
..
asyncio Issue #22560: New SSL implementation based on ssl.MemoryBIO 2015-01-14 00:19:09 +01:00
collections Issue #22609: Revert changes in UserDict. They conflicted with existing tests. 2014-11-27 17:45:44 +02:00
concurrent Issue #20319: concurrent.futures.wait() can block forever even if Futures have completed 2014-02-01 11:49:04 +11:00
ctypes Issue #22777: Test pickling with all protocols. 2014-12-15 14:03:42 +02:00
curses
dbm Issue #21729: Used the "with" statement in the dbm.dumb module to ensure 2014-06-25 20:35:31 +03:00
distutils fix instances of consecutive articles (closes #23221) 2015-01-13 09:17:24 -05:00
email #21991: make headerregistry params property MappingProxyType. 2014-10-17 19:30:13 -04:00
encodings Issue #22406: Fixed the uu_codec codec incorrectly ported to 3.x. 2014-11-07 14:04:37 +02:00
ensurepip Update setuptools to 11.3.1 2015-01-11 15:51:11 -05:00
html #20288: merge with 3.3. 2014-02-01 21:22:26 +02:00
http fix instances of consecutive articles (closes #23221) 2015-01-13 09:17:24 -05:00
idlelib Issue #23184: delete unused idlelib file. 2015-01-07 23:48:46 -05:00
importlib - Issue #22966: Fix __pycache__ pyc file name clobber when pyc_compile is 2014-12-01 17:10:10 -05:00
json Remove mentions of Python 2.x and being externally maintained from 2013-12-08 00:39:36 -08:00
lib2to3 fix instances of consecutive articles (closes #23221) 2015-01-13 09:17:24 -05:00
logging add context parameter to HTTPHandler (closes #22788) 2014-11-23 20:36:44 -06:00
msilib
multiprocessing Issue #22581: Use more "bytes-like object" throughout the docs and comments. 2014-12-05 22:25:22 +02:00
plat-aix4
plat-darwin
plat-freebsd4
plat-freebsd5
plat-freebsd6
plat-freebsd7
plat-freebsd8
plat-generic
plat-linux
plat-netbsd1
plat-next3
plat-sunos5
plat-unixware7
pydoc_data Update pydoc topics and fix supsicious markup for 3.4.2 final. 2014-10-05 19:03:48 -07:00
site-packages
sqlite3 Issue #21147: sqlite3 now raises an exception if the request contains a null 2014-09-11 13:29:05 +03:00
test Issue #22560: New SSL implementation based on ssl.MemoryBIO 2015-01-14 00:19:09 +01:00
tkinter Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments. 2014-11-07 12:02:31 +02:00
turtledemo De-'colour'ize stdlib except for idlelib.configDialog. 2014-10-09 18:44:32 -04:00
unittest Issue #22894: TestCase.subTest() would cause the test suite to be stopped when in failfast mode, even in the absence of failures. 2014-11-23 15:55:11 +01:00
urllib #23040: Clarify treatment of encoding and errors when component is bytes. 2014-12-24 21:23:18 -05:00
venv Issue #21663: Fixed error caused by trying to create an existing directory. 2014-06-05 09:31:20 +01:00
wsgiref Merge from 3.3 2014-09-17 16:31:47 +08:00
xml Removed duplicated words in in comments and docs. 2014-12-01 18:28:43 +02:00
xmlrpc merge 3.3 (#16043) 2014-12-05 20:34:56 -05:00
__future__.py
__phello__.foo.py
_bootlocale.py Fix wrong exception in _bootlocale (apparently this error condition is never triggered) 2013-10-12 15:00:44 +02:00
_collections_abc.py Issue #22609: Constructors and update methods of mapping classes in the 2014-11-27 16:25:51 +02:00
_compat_pickle.py Fix issue #19834: Support unpickling of exceptions pickled by Python 2. 2013-12-02 11:41:01 +01:00
_dummy_thread.py Issue #18808: Thread.join() now waits for the underlying thread state to be destroyed before returning. 2013-09-07 23:38:37 +02:00
_markupbase.py
_osx_support.py Issue #21811: Anticipated fixes to 3.x and 2.7 for OS X 10.10 Yosemite. 2014-06-25 13:36:14 -07:00
_pyio.py allow more operations to work on detached streams (closes #23093) 2014-12-21 20:51:50 -06:00
_sitebuiltins.py #9364: Improve the text printed by help(pydoc) and help(help). 2014-04-19 12:59:30 -04:00
_strptime.py Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
_threading_local.py
_weakrefset.py Issue #20006: Fix sporadic failures in test_weakset. 2013-12-18 00:28:36 +01:00
abc.py #16832: s/integer/object/ in docs/docstring, and add whatsnew entry. 2013-12-24 16:13:32 -05:00
aifc.py Issue #19623: Fixed writing to unseekable files in the aifc module. 2013-12-14 20:42:22 +02:00
antigravity.py
argparse.py Closes #22675: fix typo. 2014-10-20 08:36:02 +02:00
ast.py
asynchat.py Issue #16133: The asynchat.async_chat.handle_read() method now ignores 2014-07-24 18:49:36 +02:00
asyncore.py Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper 2014-06-27 23:52:03 +02:00
base64.py Issue #20879: Delay the initialization of encoding and decoding tables for 2014-03-17 22:38:41 +01:00
bdb.py Better behavior when stepping over yield[from]. Fixes issue 16596. By Xavier de Gaye. 2013-11-21 11:30:06 -08:00
binhex.py
bisect.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
bz2.py Closes #19839: Fix regression in bz2 module's handling of non-bzip2 data at EOF. 2013-12-04 23:29:51 +01:00
cProfile.py
calendar.py #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +03:00
cgi.py remove unused argument (closes #21135) 2014-04-03 10:22:10 -04:00
cgitb.py
chunk.py
cmd.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
code.py Closes #17730: in code.interact(), when banner="", do not print anything. 2013-10-13 21:49:06 +02:00
codecs.py Issue 19548: update codecs module documentation 2015-01-07 00:22:00 +10:00
codeop.py
colorsys.py Issue #14323: Expanded the number of digits in the coefficients for the 2013-08-06 11:51:23 +03:00
compileall.py Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
configparser.py Issue #20363. Fixed BytesWarning triggerred by test suite. 2014-02-06 22:52:23 +02:00
contextlib.py Merge removal of issue 20317 debugging code from 3.3 2014-01-24 23:07:16 +10:00
copy.py Issue #20791: copy.copy() now doesn't make a copy when the input is a bytes object. Initial patch by Peter Otten. 2014-02-27 22:14:31 +01:00
copyreg.py Issue #17810: Implement PEP 3154, pickle protocol 4. 2013-11-23 18:59:12 +01:00
crypt.py Issue #18405: Improve the entropy of crypt.mksalt(). 2013-08-14 01:39:14 +02:00
csv.py #19449: Handle non-string keys when generating 'fieldnames' error. 2013-11-19 13:16:20 -05:00
datetime.py improve comment 2013-08-29 17:29:30 -04:00
decimal.py Issue #22284: Update decimal.__all__ 2014-09-09 19:56:56 +02:00
difflib.py Issue 21635: Fix caching in difflib.SequenceMatcher.get_matching_blocks(). 2014-06-21 11:57:36 -07:00
dis.py Close #17916: dis.Bytecode based replacement for distb 2013-11-23 00:57:00 +10:00
doctest.py Issue #3158: Provide a couple of fallbacks for in case a method_descriptor 2014-02-06 15:46:38 -06:00
dummy_threading.py
enum.py Issue22506: added methods on base Enum class now show up in dir of Enum subclass (3.4) 2014-10-14 08:58:32 -07:00
filecmp.py shallow defaults to 'True' not '1' (closes #21355) 2014-04-26 13:36:21 -04:00
fileinput.py Issue #21075: fileinput.FileInput now reads bytes from standard stream if 2014-05-14 21:08:33 +03:00
fnmatch.py
formatter.py Issue #18644: Fix a ResourceWarning in formatter.test(). 2015-01-05 09:19:40 +02:00
fractions.py
ftplib.py make PROTOCOL_SSLv23 the default protocol version for ftplib (closes #23111) 2014-12-30 15:15:43 -06:00
functools.py Issue #23132: Mitigate regression in speed and clarity in functools.total_ordering. 2015-01-05 21:52:10 -08:00
genericpath.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
getopt.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
getpass.py #21169: add comment and doc update for getpass change. 2014-04-14 10:28:58 -04:00
gettext.py
glob.py Issue #17923: glob() patterns ending with a slash no longer match non-dirs on 2014-08-12 12:55:12 +03:00
gzip.py Issue #20875: Merge from 3.3 2014-03-09 14:47:58 -07:00
hashlib.py Removed duplicated words in in comments and docs. 2014-12-01 18:28:43 +02:00
heapq.py Issue #19018: The heapq.merge() function no longer suppresses IndexError 2013-09-14 20:51:57 -07:00
hmac.py Issue #18775: Add name and block_size attribute to HMAC object. They now 2013-11-20 17:35:06 +01:00
imaplib.py don't require OpenSSL SNI to pass hostname to ssl functions (#22921) 2014-11-23 17:04:34 -06:00
imghdr.py Issue #20331: Fixed possible FD leaks in various modules: 2014-01-25 19:43:56 +02:00
imp.py Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00
inspect.py inspect: Fix getsource() to load updated source of reloaded module 2014-12-08 18:00:25 -05:00
io.py #21225: copy docstrings from base classes 2014-04-25 09:29:30 -04:00
ipaddress.py Issue #22186: Fix typos in Lib/. 2014-10-19 18:04:38 +03:00
keyword.py
linecache.py
locale.py Issue #20079: Updated alias mapping to glibc 2.19 SUPPORTED file. 2014-10-02 10:49:26 +03:00
lzma.py Closes #19839: Fix regression in bz2 module's handling of non-bzip2 data at EOF. 2013-12-04 23:29:51 +01:00
macpath.py Issue #9850: Fixed macpath.join() for empty first component. Patch by 2014-09-27 18:53:23 +03:00
macurl2path.py Increase the coverage of macurl2path. Patch by Colin Williams. 2013-10-23 21:50:56 -07:00
mailbox.py Issue #22369: Change "context manager protocol" to "context management protocol". 2014-09-10 23:43:41 +03:00
mailcap.py Issue #20331: Fixed possible FD leaks in various modules: 2014-01-25 19:43:56 +02:00
mimetypes.py Issue #20331: Fixed possible FD leaks in various modules: 2014-01-25 19:43:56 +02:00
modulefinder.py Issue #21707: Add missing kwonlyargcount argument to ModuleFinder.replace_paths_in_code(). 2014-07-07 14:58:12 +03:00
netrc.py Merge #14984: only import pwd on POSIX. 2013-09-18 08:59:47 -04:00
nntplib.py don't require OpenSSL SNI to pass hostname to ssl functions (#22921) 2014-11-23 17:04:34 -06:00
ntpath.py Issue #6815: os.path.expandvars() now supports non-ASCII environment 2014-02-13 10:14:48 +02:00
nturl2path.py
numbers.py
opcode.py Issue #19722: Added opcode.stack_effect(), which accurately 2013-11-23 14:49:22 -08:00
operator.py Issue #19936: Added executable bits or shebang lines to Python scripts which 2014-01-16 17:33:23 +02:00
optparse.py Issue #20315: Removed support for backward compatibility with early 2.x versions. 2014-01-20 21:29:31 +02:00
os.py Issue #21875: Remove vestigial references to Classic Mac OS in os module docs. 2014-06-26 23:40:06 -07:00
pathlib.py Close #22370: Windows detection in pathlib is now more robust. 2014-11-19 00:32:08 +01:00
pdb.py Issue #22186: Fix typos in Lib/. 2014-10-19 18:04:38 +03:00
pickle.py Issue #21905: Avoid RuntimeError in pickle.whichmodule() when sys.modules is mutated while iterating. 2014-10-04 22:15:27 +02:00
pickletools.py Issue #19858: pickletools.optimize() now aware of the MEMOIZE opcode, can 2014-12-16 18:00:56 +02:00
pipes.py
pkgutil.py Issue #14710: Fix both pkgutil.find_loader() and get_loader() to not 2014-05-23 12:30:37 -04:00
platform.py Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
plistlib.py Issue #21888: plistlib's load() and loads() now work if the fmt parameter is 2014-07-23 18:49:31 +03:00
poplib.py don't require OpenSSL SNI to pass hostname to ssl functions (#22921) 2014-11-23 17:04:34 -06:00
posixpath.py Issue #22034: Got rid of misleading error message for bytearray arguments in 2014-08-24 12:18:09 +03:00
pprint.py Issue #19104: pprint now produces evaluable output for wrapped strings. 2014-12-20 20:57:15 +02:00
profile.py
pstats.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
pty.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
py_compile.py
pyclbr.py Issue 19944: Fix importlib.find_spec() so it imports parents as needed. 2014-01-25 15:32:46 -07:00
pydoc.py Issue #22314: pydoc now works when the LINES environment variable is set. 2014-11-28 00:09:29 +02:00
queue.py Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get 2013-08-10 18:17:13 -04:00
quopri.py Correct the quopri module documentation. Mention the correct types of the 2014-06-25 01:12:03 -07:00
random.py Issue 13355: Make random.triangular degrade gracefully when low == high. 2014-05-25 17:25:27 -07:00
re.py backout 9fcf4008b626 (#9179) for further consideration 2014-11-30 11:49:00 -05:00
reprlib.py Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
rlcompleter.py #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
runpy.py Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
sched.py merge 2013-07-13 22:48:49 -07:00
selectors.py Issue #23209, #23225: selectors.BaseSelector.close() now clears its internal 2015-01-13 09:58:33 +01:00
shelve.py
shlex.py #18853: Fix resource warning in shlex's __main__ section. 2014-10-17 20:28:47 -04:00
shutil.py Issue #21775: shutil.copytree(): fix crash when copying to VFAT 2014-12-10 02:50:32 +02:00
site.py Issue #21572: Change license command to fallback to generic license URL. 2014-05-30 23:46:19 -07:00
smtpd.py Issue #18922: Now The Lib/smtpd.py and Tools/i18n/msgfmt.py scripts write 2013-09-05 17:44:53 +03:00
smtplib.py don't require OpenSSL SNI to pass hostname to ssl functions (#22921) 2014-11-23 17:04:34 -06:00
sndhdr.py
socket.py fix instances of consecutive articles (closes #23221) 2015-01-13 09:17:24 -05:00
socketserver.py Issue #22435: Fix a file descriptor leak when SocketServer bind fails. 2014-10-13 19:19:26 +01:00
sre_compile.py Got rid of the array module dependency in the re module. 2014-11-10 13:24:47 +02:00
sre_constants.py Issue #13592: Improved the repr for regular expression pattern objects. 2013-11-23 22:42:43 +02:00
sre_parse.py backout 9fcf4008b626 (#9179) for further consideration 2014-11-30 11:49:00 -05:00
ssl.py Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The 2015-01-06 13:54:58 +01:00
stat.py Issue #15767: Excise the remaining instances of ModuleNotFoundError 2013-07-04 18:16:15 -04:00
statistics.py Close #20536: correctly handle Decimal exponents in statistics 2014-02-08 23:55:14 +10:00
string.py Issue #13598: Add auto-numbering of replacement fields to string.Formatter. 2014-04-14 16:43:50 -04:00
stringprep.py
struct.py
subprocess.py Issue #21332: Ensure that ``bufsize=1`` in subprocess.Popen() selects line buffering, rather than block buffering. 2014-09-21 21:10:56 +02:00
sunau.py Issue #16685: Added support for writing any bytes-like objects in the aifc, 2013-11-16 14:01:31 +02:00
symbol.py
symtable.py merge 3.3 (#19393) 2013-10-26 13:22:08 -04:00
sysconfig.py Issue #19760: Silence sysconfig's 'SO' key deprecation warnings in tests. 2013-11-26 17:08:24 +02:00
tabnanny.py
tarfile.py Issue 21044: tarfile.open() now handles fileobj with an integer 'name' 2014-07-16 23:58:58 +03:00
telnetlib.py Fixes Issue #17200: telnetlib's read_until and expect timeout was broken by the 2013-12-10 18:25:21 -08:00
tempfile.py tempfile: Fix docstring. Issue #21397, patch by R. David Murray. 2014-09-26 17:08:02 -04:00
textwrap.py Add shorten to __all_ (issues #18585 and #18725). 2013-10-16 13:07:53 +03:00
this.py
threading.py #11866: Eliminate race condition in the computation of names for new threads. 2014-10-04 17:43:54 -04:00
timeit.py Issue #19936: Added executable bits or shebang lines to Python scripts which 2014-01-16 17:33:23 +02:00
token.py Issue #19936: Added executable bits or shebang lines to Python scripts which 2014-01-16 17:33:23 +02:00
tokenize.py Issue #22599: Enhance tokenize.open() to be able to call it during Python 2014-12-05 10:17:10 +01:00
trace.py Issue #19936: Added executable bits or shebang lines to Python scripts which 2014-01-16 17:33:23 +02:00
traceback.py Issue #17825: Cursor ^ is correctly positioned for SyntaxError and IndentationError. 2014-01-22 01:16:25 +01:00
tracemalloc.py tracemalloc: filter_traces() raises a TypeError if filters is not an iterable 2014-03-10 11:05:07 +01:00
tty.py
turtle.py Issue #22168: Prevent turtle AttributeError with non-default Canvas on OS X. 2014-09-13 23:39:16 -07:00
types.py Close #19030: inspect.getmembers and inspect.classify_class_attrs 2013-10-18 00:27:39 -07:00
uu.py
uuid.py Issue #17293: socket.gethostbyname() can raise an exception of FreeBSD. 2014-11-21 21:55:39 +02:00
warnings.py Fixed a typo in a comment (issue #23016). 2014-12-14 10:53:00 +02:00
wave.py Issue #19641: Added the audioop.byteswap() function to convert big-endian 2013-11-23 22:26:01 +02:00
weakref.py Closes #21173: Fix len() on a WeakKeyDictionary when .clear() was called with an iterator alive. 2014-10-05 20:02:28 +02:00
webbrowser.py The webbrowser module now uses subprocess's start_new_session=True rather 2014-08-27 09:34:38 -07:00
xdrlib.py Issue #11694: Raise ConversionError in xdrlib as documented 2014-10-10 21:21:52 +03:00
zipfile.py Issue #14099: ZipFile.open() no longer reopen the underlying file. Objects 2014-12-03 09:11:57 +02:00