Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
152efa2a
Kaydet (Commit)
152efa2a
authored
May 16, 2010
tarafından
Antoine Pitrou
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #8550: Add first class `SSLContext` objects to the ssl module.
üst
8eac60d9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
106 additions
and
22 deletions
+106
-22
ssl.rst
Doc/library/ssl.rst
+0
-0
ssl.py
Lib/ssl.py
+49
-22
6e88d7b8.0
Lib/test/capath/6e88d7b8.0
+14
-0
99d0fa06.0
Lib/test/capath/99d0fa06.0
+41
-0
test_ssl.py
Lib/test/test_ssl.py
+0
-0
NEWS
Misc/NEWS
+2
-0
_ssl.c
Modules/_ssl.c
+0
-0
No files found.
Doc/library/ssl.rst
Dosyayı görüntüle @
152efa2a
This diff is collapsed.
Click to expand it.
Lib/ssl.py
Dosyayı görüntüle @
152efa2a
...
@@ -59,7 +59,7 @@ import textwrap
...
@@ -59,7 +59,7 @@ import textwrap
import
_ssl
# if we can't import it, let the error propagate
import
_ssl
# if we can't import it, let the error propagate
from
_ssl
import
OPENSSL_VERSION_NUMBER
,
OPENSSL_VERSION_INFO
,
OPENSSL_VERSION
from
_ssl
import
OPENSSL_VERSION_NUMBER
,
OPENSSL_VERSION_INFO
,
OPENSSL_VERSION
from
_ssl
import
SSLError
from
_ssl
import
_SSLContext
,
SSLError
from
_ssl
import
CERT_NONE
,
CERT_OPTIONAL
,
CERT_REQUIRED
from
_ssl
import
CERT_NONE
,
CERT_OPTIONAL
,
CERT_REQUIRED
from
_ssl
import
(
PROTOCOL_SSLv2
,
PROTOCOL_SSLv3
,
PROTOCOL_SSLv23
,
from
_ssl
import
(
PROTOCOL_SSLv2
,
PROTOCOL_SSLv3
,
PROTOCOL_SSLv23
,
PROTOCOL_TLSv1
)
PROTOCOL_TLSv1
)
...
@@ -84,8 +84,29 @@ import base64 # for DER-to-PEM translation
...
@@ -84,8 +84,29 @@ import base64 # for DER-to-PEM translation
import
traceback
import
traceback
import
errno
import
errno
class
SSLSocket
(
socket
):
class
SSLContext
(
_SSLContext
):
"""An SSLContext holds various SSL-related configuration options and
data, such as certificates and possibly a private key."""
__slots__
=
(
'protocol'
,)
def
__new__
(
cls
,
protocol
,
*
args
,
**
kwargs
):
return
_SSLContext
.
__new__
(
cls
,
protocol
)
def
__init__
(
self
,
protocol
):
self
.
protocol
=
protocol
def
wrap_socket
(
self
,
sock
,
server_side
=
False
,
do_handshake_on_connect
=
True
,
suppress_ragged_eofs
=
True
):
return
SSLSocket
(
sock
=
sock
,
server_side
=
server_side
,
do_handshake_on_connect
=
do_handshake_on_connect
,
suppress_ragged_eofs
=
suppress_ragged_eofs
,
_context
=
self
)
class
SSLSocket
(
socket
):
"""This class implements a subtype of socket.socket that wraps
"""This class implements a subtype of socket.socket that wraps
the underlying OS socket in an SSL context when necessary, and
the underlying OS socket in an SSL context when necessary, and
provides read and write methods over that channel."""
provides read and write methods over that channel."""
...
@@ -95,8 +116,31 @@ class SSLSocket(socket):
...
@@ -95,8 +116,31 @@ class SSLSocket(socket):
ssl_version
=
PROTOCOL_SSLv23
,
ca_certs
=
None
,
ssl_version
=
PROTOCOL_SSLv23
,
ca_certs
=
None
,
do_handshake_on_connect
=
True
,
do_handshake_on_connect
=
True
,
family
=
AF_INET
,
type
=
SOCK_STREAM
,
proto
=
0
,
fileno
=
None
,
family
=
AF_INET
,
type
=
SOCK_STREAM
,
proto
=
0
,
fileno
=
None
,
suppress_ragged_eofs
=
True
,
ciphers
=
None
):
suppress_ragged_eofs
=
True
,
ciphers
=
None
,
_context
=
None
):
if
_context
:
self
.
context
=
_context
else
:
if
certfile
and
not
keyfile
:
keyfile
=
certfile
self
.
context
=
SSLContext
(
ssl_version
)
self
.
context
.
verify_mode
=
cert_reqs
if
ca_certs
:
self
.
context
.
load_verify_locations
(
ca_certs
)
if
certfile
:
self
.
context
.
load_cert_chain
(
certfile
,
keyfile
)
if
ciphers
:
self
.
context
.
set_ciphers
(
ciphers
)
self
.
keyfile
=
keyfile
self
.
certfile
=
certfile
self
.
cert_reqs
=
cert_reqs
self
.
ssl_version
=
ssl_version
self
.
ca_certs
=
ca_certs
self
.
ciphers
=
ciphers
self
.
do_handshake_on_connect
=
do_handshake_on_connect
self
.
suppress_ragged_eofs
=
suppress_ragged_eofs
connected
=
False
connected
=
False
if
sock
is
not
None
:
if
sock
is
not
None
:
socket
.
__init__
(
self
,
socket
.
__init__
(
self
,
...
@@ -119,18 +163,12 @@ class SSLSocket(socket):
...
@@ -119,18 +163,12 @@ class SSLSocket(socket):
else
:
else
:
socket
.
__init__
(
self
,
family
=
family
,
type
=
type
,
proto
=
proto
)
socket
.
__init__
(
self
,
family
=
family
,
type
=
type
,
proto
=
proto
)
if
certfile
and
not
keyfile
:
keyfile
=
certfile
self
.
_closed
=
False
self
.
_closed
=
False
self
.
_sslobj
=
None
self
.
_sslobj
=
None
if
connected
:
if
connected
:
# create the SSL object
# create the SSL object
try
:
try
:
self
.
_sslobj
=
_ssl
.
sslwrap
(
self
,
server_side
,
self
.
_sslobj
=
self
.
context
.
_wrap_socket
(
self
,
server_side
)
keyfile
,
certfile
,
cert_reqs
,
ssl_version
,
ca_certs
,
ciphers
)
if
do_handshake_on_connect
:
if
do_handshake_on_connect
:
timeout
=
self
.
gettimeout
()
timeout
=
self
.
gettimeout
()
if
timeout
==
0.0
:
if
timeout
==
0.0
:
...
@@ -142,15 +180,6 @@ class SSLSocket(socket):
...
@@ -142,15 +180,6 @@ class SSLSocket(socket):
self
.
close
()
self
.
close
()
raise
x
raise
x
self
.
keyfile
=
keyfile
self
.
certfile
=
certfile
self
.
cert_reqs
=
cert_reqs
self
.
ssl_version
=
ssl_version
self
.
ca_certs
=
ca_certs
self
.
ciphers
=
ciphers
self
.
do_handshake_on_connect
=
do_handshake_on_connect
self
.
suppress_ragged_eofs
=
suppress_ragged_eofs
def
dup
(
self
):
def
dup
(
self
):
raise
NotImplemented
(
"Can't dup()
%
s instances"
%
raise
NotImplemented
(
"Can't dup()
%
s instances"
%
self
.
__class__
.
__name__
)
self
.
__class__
.
__name__
)
...
@@ -331,9 +360,7 @@ class SSLSocket(socket):
...
@@ -331,9 +360,7 @@ class SSLSocket(socket):
if
self
.
_sslobj
:
if
self
.
_sslobj
:
raise
ValueError
(
"attempt to connect already-connected SSLSocket!"
)
raise
ValueError
(
"attempt to connect already-connected SSLSocket!"
)
socket
.
connect
(
self
,
addr
)
socket
.
connect
(
self
,
addr
)
self
.
_sslobj
=
_ssl
.
sslwrap
(
self
,
False
,
self
.
keyfile
,
self
.
certfile
,
self
.
_sslobj
=
self
.
context
.
_wrap_socket
(
self
,
False
)
self
.
cert_reqs
,
self
.
ssl_version
,
self
.
ca_certs
,
self
.
ciphers
)
try
:
try
:
if
self
.
do_handshake_on_connect
:
if
self
.
do_handshake_on_connect
:
self
.
do_handshake
()
self
.
do_handshake
()
...
...
Lib/test/capath/6e88d7b8.0
0 → 100644
Dosyayı görüntüle @
152efa2a
-----BEGIN CERTIFICATE-----
MIICLDCCAdYCAQAwDQYJKoZIhvcNAQEEBQAwgaAxCzAJBgNVBAYTAlBUMRMwEQYD
VQQIEwpRdWVlbnNsYW5kMQ8wDQYDVQQHEwZMaXNib2ExFzAVBgNVBAoTDk5ldXJv
bmlvLCBMZGEuMRgwFgYDVQQLEw9EZXNlbnZvbHZpbWVudG8xGzAZBgNVBAMTEmJy
dXR1cy5uZXVyb25pby5wdDEbMBkGCSqGSIb3DQEJARYMc2FtcG9AaWtpLmZpMB4X
DTk2MDkwNTAzNDI0M1oXDTk2MTAwNTAzNDI0M1owgaAxCzAJBgNVBAYTAlBUMRMw
EQYDVQQIEwpRdWVlbnNsYW5kMQ8wDQYDVQQHEwZMaXNib2ExFzAVBgNVBAoTDk5l
dXJvbmlvLCBMZGEuMRgwFgYDVQQLEw9EZXNlbnZvbHZpbWVudG8xGzAZBgNVBAMT
EmJydXR1cy5uZXVyb25pby5wdDEbMBkGCSqGSIb3DQEJARYMc2FtcG9AaWtpLmZp
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL7+aty3S1iBA/+yxjxv4q1MUTd1kjNw
L4lYKbpzzlmC5beaQXeQ2RmGMTXU+mDvuqItjVHOK3DvPK7lTcSGftUCAwEAATAN
BgkqhkiG9w0BAQQFAANBAFqPEKFjk6T6CKTHvaQeEAsX0/8YHPHqH/9AnhSjrwuX
9EBc0n6bVGhN7XaXd6sJ7dym9sbsWxb+pJdurnkxjx4=
-----END CERTIFICATE-----
Lib/test/capath/99d0fa06.0
0 → 100644
Dosyayı görüntüle @
152efa2a
-----BEGIN CERTIFICATE-----
MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
-----END CERTIFICATE-----
Lib/test/test_ssl.py
Dosyayı görüntüle @
152efa2a
This diff is collapsed.
Click to expand it.
Misc/NEWS
Dosyayı görüntüle @
152efa2a
...
@@ -363,6 +363,8 @@ C-API
...
@@ -363,6 +363,8 @@ C-API
Library
Library
-------
-------
- Issue #8550: Add first class ``SSLContext`` objects to the ssl module.
- Issue #8681: Make the zlib module's error messages more informative when
- Issue #8681: Make the zlib module's error messages more informative when
the zlib itself doesn't give any detailed explanation.
the zlib itself doesn't give any detailed explanation.
...
...
Modules/_ssl.c
Dosyayı görüntüle @
152efa2a
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment