Issue #27114: Fix SSLContext._load_windows_store_certs fails with PermissionError
This commit is contained in:
commit
48df37dbb8
14
Lib/ssl.py
14
Lib/ssl.py
|
@ -145,6 +145,7 @@ from socket import socket, AF_INET, SOCK_STREAM, create_connection
|
||||||
from socket import SOL_SOCKET, SO_TYPE
|
from socket import SOL_SOCKET, SO_TYPE
|
||||||
import base64 # for DER-to-PEM translation
|
import base64 # for DER-to-PEM translation
|
||||||
import errno
|
import errno
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
|
||||||
socket_error = OSError # keep that public name in module namespace
|
socket_error = OSError # keep that public name in module namespace
|
||||||
|
@ -405,11 +406,14 @@ class SSLContext(_SSLContext):
|
||||||
|
|
||||||
def _load_windows_store_certs(self, storename, purpose):
|
def _load_windows_store_certs(self, storename, purpose):
|
||||||
certs = bytearray()
|
certs = bytearray()
|
||||||
for cert, encoding, trust in enum_certificates(storename):
|
try:
|
||||||
# CA certs are never PKCS#7 encoded
|
for cert, encoding, trust in enum_certificates(storename):
|
||||||
if encoding == "x509_asn":
|
# CA certs are never PKCS#7 encoded
|
||||||
if trust is True or purpose.oid in trust:
|
if encoding == "x509_asn":
|
||||||
certs.extend(cert)
|
if trust is True or purpose.oid in trust:
|
||||||
|
certs.extend(cert)
|
||||||
|
except PermissionError:
|
||||||
|
warnings.warn("unable to enumerate Windows certificate store")
|
||||||
if certs:
|
if certs:
|
||||||
self.load_verify_locations(cadata=certs)
|
self.load_verify_locations(cadata=certs)
|
||||||
return certs
|
return certs
|
||||||
|
|
|
@ -22,6 +22,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #27114: Fix SSLContext._load_windows_store_certs fails with
|
||||||
|
PermissionError
|
||||||
|
|
||||||
- Issue #18383: Avoid creating duplicate filters when using filterwarnings
|
- Issue #18383: Avoid creating duplicate filters when using filterwarnings
|
||||||
and simplefilter. Based on patch by Alex Shkop.
|
and simplefilter. Based on patch by Alex Shkop.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue