mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55: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
|
@ -1285,16 +1285,12 @@ if HAVE_SSL:
|
|||
|
||||
"""IMAP4 client class over SSL connection
|
||||
|
||||
Instantiate with: IMAP4_SSL([host[, port[, keyfile[, certfile[, ssl_context[, timeout=None]]]]]])
|
||||
Instantiate with: IMAP4_SSL([host[, port[, ssl_context[, timeout=None]]]])
|
||||
|
||||
host - host's name (default: localhost);
|
||||
port - port number (default: standard IMAP4 SSL port);
|
||||
keyfile - PEM formatted file that contains your private key (default: None);
|
||||
certfile - PEM formatted certificate chain file (default: None);
|
||||
ssl_context - a SSLContext object that contains your certificate chain
|
||||
and private key (default: None)
|
||||
Note: if ssl_context is provided, then parameters keyfile or
|
||||
certfile should not be set otherwise ValueError is raised.
|
||||
timeout - socket timeout (default: None) If timeout is not given or is None,
|
||||
the global default socket timeout is used
|
||||
|
||||
|
@ -1302,23 +1298,10 @@ if HAVE_SSL:
|
|||
"""
|
||||
|
||||
|
||||
def __init__(self, host='', port=IMAP4_SSL_PORT, keyfile=None,
|
||||
certfile=None, ssl_context=None, timeout=None):
|
||||
if ssl_context is not None and keyfile is not None:
|
||||
raise ValueError("ssl_context and keyfile arguments are mutually "
|
||||
"exclusive")
|
||||
if ssl_context is not None and certfile is not None:
|
||||
raise ValueError("ssl_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 ssl_context instead", DeprecationWarning, 2)
|
||||
self.keyfile = keyfile
|
||||
self.certfile = certfile
|
||||
def __init__(self, host='', port=IMAP4_SSL_PORT,
|
||||
*, ssl_context=None, timeout=None):
|
||||
if ssl_context is None:
|
||||
ssl_context = ssl._create_stdlib_context(certfile=certfile,
|
||||
keyfile=keyfile)
|
||||
ssl_context = ssl._create_stdlib_context()
|
||||
self.ssl_context = ssl_context
|
||||
IMAP4.__init__(self, host, port, timeout)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue