mirror of
https://github.com/python/cpython.git
synced 2025-11-24 20:30:18 +00:00
gh-94172: Remove keyfile, certfile and check_hostname parameters (#94173)
Remove the keyfile, certfile and check_hostname parameters, deprecated since Python 3.6, in modules: ftplib, http.client, imaplib, poplib and smtplib. Use the context parameter (ssl_context in imaplib) instead. Parameters following the removed parameters become keyword-only parameters. ftplib: Remove the FTP_TLS.ssl_version class attribute: use the context parameter instead.
This commit is contained in:
parent
9c4ae037b9
commit
ef0e72b31d
12 changed files with 55 additions and 181 deletions
|
|
@ -713,28 +713,12 @@ else:
|
|||
'221 Goodbye.'
|
||||
>>>
|
||||
'''
|
||||
ssl_version = ssl.PROTOCOL_TLS_CLIENT
|
||||
|
||||
def __init__(self, host='', user='', passwd='', acct='',
|
||||
keyfile=None, certfile=None, context=None,
|
||||
timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *,
|
||||
encoding='utf-8'):
|
||||
if context is not None and keyfile is not None:
|
||||
raise ValueError("context and keyfile arguments are mutually "
|
||||
"exclusive")
|
||||
if context is not None and certfile is not None:
|
||||
raise ValueError("context and certfile arguments are mutually "
|
||||
"exclusive")
|
||||
if keyfile is not None or certfile is not None:
|
||||
import warnings
|
||||
warnings.warn("keyfile and certfile are deprecated, use a "
|
||||
"custom context instead", DeprecationWarning, 2)
|
||||
self.keyfile = keyfile
|
||||
self.certfile = certfile
|
||||
*, context=None, timeout=_GLOBAL_DEFAULT_TIMEOUT,
|
||||
source_address=None, encoding='utf-8'):
|
||||
if context is None:
|
||||
context = ssl._create_stdlib_context(self.ssl_version,
|
||||
certfile=certfile,
|
||||
keyfile=keyfile)
|
||||
context = ssl._create_stdlib_context()
|
||||
self.context = context
|
||||
self._prot_p = False
|
||||
super().__init__(host, user, passwd, acct,
|
||||
|
|
@ -749,7 +733,7 @@ else:
|
|||
'''Set up secure control connection by using TLS/SSL.'''
|
||||
if isinstance(self.sock, ssl.SSLSocket):
|
||||
raise ValueError("Already using TLS")
|
||||
if self.ssl_version >= ssl.PROTOCOL_TLS:
|
||||
if self.context.protocol >= ssl.PROTOCOL_TLS:
|
||||
resp = self.voidcmd('AUTH TLS')
|
||||
else:
|
||||
resp = self.voidcmd('AUTH SSL')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue